Windows에서 백그라운드 프로세스로 실행하려는 Python 스크립트가 있습니다.
Linux에서 다음과 같이 할 수 있습니다.
python script.py &
다음을 사용하여 프로세스를 터미널에서 분리하십시오.
disown
Windows에서 지금까지 내가 가진 것은 다음과 같습니다.
start /b python script.py
그러나 CMD 창을 닫으면 스크립트 실행이 중지됩니다. 스크립트를 백그라운드에서 계속 실행하기 위해 여기에 누락 된 추가 명령이 있습니까?
답변
start
이미 올바른 방향이어야합니다. 그러나 /b
동일한 콘솔에 연결합니다. 이제 콘솔 창을 닫으면이 콘솔과 관련된 모든 프로세스도 닫힙니다.
start
없이 사용할 수 있으며 /b
새 콘솔에서 실행됩니다. 콘솔 창없이 백그라운드에서 실행하려면 VBScript 또는 타사 도구를 사용해야합니다 . 배치 파일을 완전히 숨겨진 방식으로 실행하십시오.
그러나이 경우 stdout / stderr 출력이 더 이상 표시되지 않습니다. 그러나 파일을 cmd /c your_command > stdout.txt 2> stderr.txt
호출 로 래핑 하고 앞에서 언급 한 방법 중 하나 (VBScript, 타사 도구 등)를 통해 시작 하여 파일로 리디렉션 할 수 있습니다.
또는 종료하기 전에 자신의 콘솔 창을 숨길 수도 있습니다. 방금 작은 것을 한 줄로 작성했습니다 (소스 코드는 기본적으로 ShowWindow(GetConsoleWindow(), SW_HIDE)
) : http://share.cherrytree.at/showfile-24286/hide_current_console.exe
이 방법으로을 사용할 수 있으며 start /b
콘솔을 “닫기”(기술적으로 숨기려면) hide_current_console & exit
콘솔을 숨기고 cmd.exe 프로세스 (python 프로세스가 아닌)를 한 줄에 실행하십시오. exit
콘솔이 이미 숨겨진 후에는 입력 할 수 없으므로
답변
나는 다음이 나를 위해 잘 작동한다는 것을 알았다.
run python script.py