답변:
nohup
됩니다.nohup
행업 신호를 무시한 SIG_IGN
다음 동일한 프로세스에서 프로그램을 체인로드합니다.
Python 프로그램 은 자체 신호 처리기를 설치하여 행업 신호에 대한 신호 처리를 즉시 재설정 합니다. 그 핸들러는 내부 함수 (잘 설계되지 않았고, 내가 본 것이라면 약간의 가정에 기초하여 잘 설계되지 않았 음)를 확인하고 행업 신호를 수신 할 때 적절한 조치가 해당 메시지를 인쇄하는 것으로 결정합니다. 종료합니다.
의도적으로 파이썬 프로그램은 사용할 nohup
수 없습니다 . 작업 제어 쉘 및 POSIX 세션 / 작업 시맨틱이있는 시스템 disown
에서 쉘이 행업 신호를 처음으로 보내지 못하도록 작업을 수행해야합니다.
시스템 운영 체제에서는 충분하지 않습니다. 시스템 사용자는 사용자 공간 로그인 세션 메커니즘에 약간의 귀를 기울 였기 때문에 시스템 연결을 끊지 않고 시스템 종료 신호를 보내는 시스템 메커니즘을 확인해야합니다. 모든 로그 아웃시 로그인 세션도 시작되지 않습니다.)
nohup
. 그 치료법을 찾지 못했습니다
setsid nohup python3 run.py > nohup.out &
, setsid는 이 문제를 해결했다. 이것이 적절한 접근법입니까?
tmux
무시하고 무시nohup
하거나 백그라운드 작업을 완전히 수행합니다.