상위 쉘이 종료된 후에도 프로세스가 생존하도록 하려면 어떻게 해야 합니까?

상위 쉘이 종료된 후에도 프로세스가 생존하도록 하려면 어떻게 해야 합니까?

프로세스가 상위 쉘의 종료에서 생존하려면 어떤 필요조건과 충분조건이 충족되어야 합니까?

  1. 신호에 대해 구체적으로 생각해 보면 어떤 신호가 프로세스에서 무시되거나 프로세스로 전송되지 않아야 합니까?

    • SIGHUP, SIGTERM?

      하지만 nohup 프로세스가 SIGHUP만 무시하고 SIGTERM은 무시하지 않도록 하시겠습니까? ( disown부모 쉘이 프로세스에 신호를 보내는 것을 피하는 것 같습니다)

    • SIGINT, SIGQUIT, SIGTSTP, SIGTTIN, SIGTTOU와 같은 터미널 생성 신호?

      그러나 disownand &(백그라운드)는 제어 터미널에서 프로세스의 연결을 끊지 않습니다. ( nohup제어 터미널에서 프로세스의 연결을 끊을 수 있습니다).

  2. 신호 외에 다른 필요한 것이 있나요?

  3. 위의 조건을 고려할 때 상위 쉘이 종료된 후에도 프로세스가 생존하도록 하려면 어떻게 해야 합니까?

  4. 상위 쉘이 종료된 후에도 프로세스가 생존하도록 만드는 작업은 프로세스의 상위 쉘을 변경하는 것과 동일합니까?

    bash 쉘 및 coreutils와 같은 기본 유틸리티에서 프로세스의 상위 쉘 프로세스를 변경하는 것이 유일한 두 가지 방법입니까 disown? nohup쉘이 종료되면 부모-자식 관계가 변경됩니까?

관련 정보