SSH가 닫힌 후에도 Python 스크립트가 계속 실행됩니다.

SSH가 닫힌 후에도 Python 스크립트가 계속 실행됩니다.

script.pySSH를 통해 연결된 원격 CentOS 7.3 시스템에서 호출되는 스크립트를 실행하려고 합니다 . 이라는 환경에서 스크립트를 실행하고 있습니다 py. 연결이 끊어진 후에도 스크립트가 계속 실행되기를 원합니다. 내가 시도한 다른 스택 교환 질문을 읽음으로써

conda activate py
nohup python script.py &

이것은 작동하지만 ssh 연결을 끊으면 프로세스 실행이 중지됩니다.

나도 시도했다

screen
conda activate py
python script.py

NameError그러나 이는 내 환경과 함께 있지만 py거기에는 없는 환경 을 제공하므로 사용하면 해당 환경이 사용되지 않는 base것처럼 보입니다 .screenpy

결국 tmux설치는 안했고 워크박스라서 하지 못했어요.

다른 아이디어가 있나요?

답변1

노력하다 setsid. WSGI Python 스크립트를 실행하는 데 사용합니다. 모든기술 담당 직원:

원하는 동작을 달성하기 위한 또 다른 유틸리티는 setid입니다. Nohup은 프로세스의 프로세스 그룹이 변경되지 않고 그대로 유지된다는 단점이 있으므로 nohup으로 실행되는 프로세스는 전체 프로세스 그룹으로 전송되는 모든 신호(예: Ctrl+C)에 취약합니다.

반면, setid는 실행 프로세스에 새로운 프로세스 그룹을 할당하므로 생성된 프로세스는 완전히 새로 할당된 프로세스 그룹에 속해 세션이 로그아웃된 후에도 종료될 염려 없이 안전하게 실행될 수 있다.

답변2

이것은 대개 나에게 효과적입니다.

python script.py &

귀하의 경우에는 사용하지 않고 시도해보십시오.북면, 이것이 작동할 것입니다.

관련 정보