고아 프로세스 만들기

고아 프로세스 만들기

Ubuntu를 사용하여 명령 백그라운드 프로세스의 상위 프로세스를 종료하여 고아 프로세스를 만들 수 있습니까 sleep 1000? 가능합니까?

답변1

일반적으로 말하면 - 그렇습니다. 그러나 귀하의 경우 상위 프로세스를 종료한다는 것은 쉘 프로세스를 종료하고 세션을 종료하는 것을 의미하며, 이는 또한 Linux가 모든 하위 프로세스에 SIGHUP 신호를 보내고 닫히게 합니다. 따라서 먼저 nohup으로 명령을 실행할 수 있습니다. nohup sleep 1000 & 이제 kill로 상위 쉘을 종료할 수 있습니다. 더 좋은 방법은 disownkill 대신 백그라운드 프로세스 에만 사용하는 것입니다.

답변2

할 수 없다고아 프로세스는 pid == 1 ()인 프로세스에 의해 즉시 채택되거나 initLinux의 경우 "subreaper" 프로세스에 의해 채택되므로 고아 프로세스를 만듭니다.

그것이 당신이 원하는 것이라면, (cmd ... &).

예:

$ (sleep 9999 &)
$ pgrep -fa 'sleep 9999'
5435 sleep 9999
$ ps -o pid,ppid,cmd 5435
  PID  PPID CMD
 5435     1 sleep 9999

SIGHUP참고: 세션(예: 세션 리더)이 종료되면 Linux는 다른 응답의 명령문을 잘못된 모든 프로세스에 보냅니다. Linux와 bash는 모두 위의 예에서는 속하지 않는 SIGHUP선택된 프로세스 하위 집합에만 신호를 보냅니다 .sleep

관련 정보