Linux 하위 프로세스가 쫓겨나지 않습니다 [닫기]

Linux 하위 프로세스가 쫓겨나지 않습니다 [닫기]

이로 인해 BSD와 Linux 간의 스크립트 이식성에 심각한 문제가 발생합니다.

CentOS 6.4에서 이런 일이 일어났습니다.

나는 멋진 소형 테스트 케이스를 가지고 있습니다.

bash -c "inotifywait -mcr . | sed s/CLOSE/z/"

ps uf그리고 관찰하세요:

 \_ bash -c inotifywait -mcr . | sed s/CLOSE/z/
     \_ inotifywait -mcr .             
     \_ sed s/CLOSE/z/                 

그런 다음 bash 상위 프로세스의 PID를 찾아 종료합니다.

쉘 프롬프트가 어떻게 반환되는지 확인하십시오. 이는 쉘이 자식에 대한 대기를 마쳤음을 나타냅니다.

그러나 더 많은 이벤트를 보고하기 위해 inotify를 트리거하는 파일 시스템에서 작업을 수행하면 계속해서 터미널에 덤프됩니다. OS X에서는 모두 죽기 때문에 이런 일이 발생하지 않습니다.

ps uf다시. inotifywait와 sed가 이제 모두 의 자식인지 확인하세요 init.

이것은 나에게 완전히 잘못된 것 같습니다.

POSIX는 이에 대해 뭐라고 말합니까?

관련 정보