Python 프로그램이 실행 취소됩니다 nohup.

Python 프로그램이 실행 취소됩니다 nohup.

백그라운드에서 프로세스를 시작하는 명령을 사용하는 원격 세션을 통해 쉘 스크립트를 시작하려고 합니다.

nohup python3 run.py > nohup.out &

원격 세션이 닫히면 다음 메시지와 함께 프로세스가 종료됩니다.

캡처 신호 SIGHUP

SIGHUP이 캡처되었지만 보호되지 않았습니다. 그만두다.

백그라운드에서 시작하면 프로세스가 종료되는 이유를 이해할 수 없습니다.노샘프&?

답변1

Python 프로그램이 실행 취소됩니다 nohup.

nohup끊김 신호를 무시 SIG_IGN하고 동일한 프로세스에서 프로그램을 체인 로드합니다.

당신의 파이썬 프로그램시간에 맞춰 재설정신호의 신호 처리를 중단하고 자신만의 신호 처리기를 설치하십시오. 핸들러는 내부 기능(내가 본 것이라면 일부 결함이 있는 가정에 기초하여 잘 설계되지 않은 기능)을 확인하고 끊기 신호를 받은 후 적절한 조치는 메시지를 인쇄하고 종료하는 것이라고 결정합니다.

귀하의 Python 프로그램은 설계상 실행 가능하지 않습니다 nohup. 작업 제어 셸 및 POSIX 세션/작업 의미 체계가 있는 시스템에서는 disown셸이 작업에 대해 전혀 알지 못하므로 먼저 중단 신호를 보내도록 작업을 지정 해야 합니다 .

(이것조차도 systemd OS에서는 충분하지 않습니다. systemd 사람들이 사용자 공간 로그인 세션 메커니즘에 대해 몇 가지 연구를 했기 때문에 systemd의 메커니즘이 로그인 세션이 끝날 때마다 끊는 대신 시스템을 종료하라는 신호를 보내는지 확인해야 합니다. 로그아웃 시 시작되지 않습니다.)

추가 읽기

관련 정보