nohup은 쉘 프로세스의 하위 프로세스에서만 작동하고 비쉘 프로세스의 하위 프로세스에서는 작동하지 않습니까?

nohup은 쉘 프로세스의 하위 프로세스에서만 작동하고 비쉘 프로세스의 하위 프로세스에서는 작동하지 않습니까?

nohup은 외부 프로그램입니다. 쉘 프로세스의 하위 프로세스에 대한 SIGHUP 조치를 "무시"로 변경하려면 어떻게 해야 합니까? (nohup 이후 하위 프로세스 fork()및/또는 execve()프로그램 에서 호출할 때 일부 매개변수와 관련하여 ?)

nohup은 쉘 프로세스의 하위 프로세스에서만 작동하고 비쉘 프로세스의 하위 프로세스에서는 작동하지 않습니까?

감사해요.

답변1

nohup이 신호를 무시하도록 구성하십시오 SIGHUP.GNU 구현.POSIX 사양nohup지적

당시 이름이 붙은유용호출되면 SIGHUP 신호가 무시되도록 설정되어야 합니다.

또한 좋아요POSIX에 의해 지정됨, 하위 프로세스는 을 제외한 무시된 신호를 상속하므로 SIGCHLD무시된 후 시작된 모든 프로세스는 자체적으로 무시됩니다.nohupSIGHUPSIGHUP

nohup처리는 상위 프로세스 nohup에 관계없이 의 모든 하위 프로세스에 적용됩니다. 하다nohupnohup아니요(불가능) 쉘이든 아니든 부모가 신호를 처리하는 방식에 영향을 줄 수 없습니다.

관련 정보