Windows-cmd를 닫은 후 백그라운드에서 프로세스 실행 있습니다. Linux에서 다음과 같이 할

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