Bash 쉘에서는 고아 프로세스를 생성하기 위해 nohup mycommand &
명령을 실행한 후 bash 쉘을 닫았습니다. 상위 쉘을 종료하지 않고 수행할 수 있습니까? 시스템 호출 분기() 및 종료()와 유사한 데몬용 셸 명령이 있는지 궁금합니다.
답변1
고아 프로세스를 생성하려면 상위 프로세스가 종료되어야 합니다. 쉘이 죽는 것을 원하지 않는다면 쉘은 고아의 부모가 아니어야 합니다. 가장 간단한 방법은 쉘이 자식 프로세스를 포크하여 그 프로세스가 고아가 되도록 하는 것입니다. 이 이중 포크는 다음과 같이 데몬 프로세스가 시작되는 방식입니다.Wikipedia 기사 소개.
셸에서 하위 프로세스를 생성하는 방법을 이미 알고 있습니다 &
(동일한 셸의 포크). .
{ nohup mycommand & } &