상위 셸을 종료하지 않고 고아 프로세스를 만드는 방법은 무엇입니까?

상위 셸을 종료하지 않고 고아 프로세스를 만드는 방법은 무엇입니까?

Bash 쉘에서는 고아 프로세스를 생성하기 위해 nohup mycommand &명령을 실행한 후 bash 쉘을 닫았습니다. 상위 쉘을 종료하지 않고 수행할 수 있습니까? 시스템 호출 분기() 및 종료()와 유사한 데몬용 셸 명령이 있는지 궁금합니다.

답변1

고아 프로세스를 생성하려면 상위 프로세스가 종료되어야 합니다. 쉘이 죽는 것을 원하지 않는다면 쉘은 고아의 부모가 아니어야 합니다. 가장 간단한 방법은 쉘이 자식 프로세스를 포크하여 그 프로세스가 고아가 되도록 하는 것입니다. 이 이중 포크는 다음과 같이 데몬 프로세스가 시작되는 방식입니다.Wikipedia 기사 소개.

셸에서 하위 프로세스를 생성하는 방법을 이미 알고 있습니다 &(동일한 셸의 포크). .

{ nohup mycommand & } &

관련 정보