나는이 같은 exec 명령으로 PHP를 사용하여 파이썬 스크립트를 실행하기 위해 노력하고있어 죽지 않습니다파이썬 스크립트 내에서 살해되어 있지만 과정은
exec("python /address/to/script.py");
내가하는 스크립트가 필요하지 않습니다 완료까지 달려서 내가 필요한 것을 수행 한 후에 sys.exit()
으로 연락합니다. 실행은 PHP 스크립트로 돌아가지만, 파이썬 프로세스가 여전히 실행 중이다. 내 서버의 프로세스 목록에서 볼 수 있습니다. 그것을 완전히 없애기 위해 더 많은 것이 있습니까?
추가 정보
파이썬 스크립트는 타사에 의해 작성되었습니다.
나는 파이썬에 대해 거의 알지 못하지만,
sys.exit()
호출을 추가하기에 충분합니다.
아니요, & 존재하지 않습니다. 나는 그것을 동기로 실행해야한다. 내가 자식 프로세스 내부에 있는지 스크립트 내에서 결정할 수있는 방법이 있습니까? 인쇄물을 출력하는 방법을 알고 있습니다. 어쨌든, os._exit()는 괜찮은 것처럼 들립니다. 지금까지는 정리 만하는 것이 아니라 프로그램 관련 자료를 의미합니까? 매번 강제로 스크립트를 반복적으로 죽이면 서버 상태가 영향을받지 않아야합니다. 맞습니까? – DaiBu
자식 프로세스가 실행 중인지 확인하는 방법은 다음과 같습니다 (http://stackoverflow.com/questions/23442651/check-if-the-main-thread-is-still-alive-from-another-thread). 너는 시도 할 수 있었다. 클린업은 서버의 상태에 영향을 미치지 않아도 프로그램 특유의 물건, 버퍼 플러싱 등이 될 수 있습니다. 그것은 터미널에서'kill' 명령을 통해 프로세스를 죽이는 것과 다르지 않습니다. –
글쎄,'os._exit()'를 사용해 보았는데 스크립트에서 예외 처리를 유발하는 것 같습니다. 여전히 죽지 않고 터미널에 메시지를 출력합니다. 그러나 나는 주 파일 ('sys.exit()'에서 검색 루프를 실행하는 파일에서'search_thread = Thread()'및'search_thread.start()'호출을 발견 했으므로 아마 자식 스레드 일 것입니다). 부모에게 알림을 보내고 거기서 죽일 수있는 간단한 방법이 있습니까? – DaiBu