O processo filho do Linux não é abatido [fechado]

2

Isso está causando problemas significativos para a portabilidade de scripts entre o BSD e o Linux.

Eu estou em um CentOS 6.4 onde isso acontece.

Eu tenho um bom caso de teste compacto:

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

ps uf e observe:

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

Depois, encontre o PID do processo pai bash, mate-o.

Observe como o prompt do shell retornou, indicando que nosso shell parou de esperar por seu filho.

Mas se você fizer qualquer coisa no sistema de arquivos para acionar inotify para relatar mais eventos, ele continuará a descarregar para o terminal. No OS X, isso não acontece porque todos estariam mortos.

ps uf novamente. Veja que inotifywait e sed agora são filhos de init .

Isso parece totalmente errado para mim.

O que o POSIX diz sobre isso?

    
por Steven Lu 04.08.2013 / 08:56

0 respostas