Duração de / proc / pid / stat

1

Eu tenho um processo que inicia um processo filho e quando o filho sai, varre /proc/<pid>/stat para reunir algumas informações sobre a CPU e a memória que a criança usou. No entanto, estou preocupado que estou vivendo em tempo emprestado aqui. Quanto tempo depois que wait() retornar ou SIGCHLD for enviado / o manipulador de sinal for chamado, ele realmente ficará suspenso? Seria super conveniente se eles durassem até que o PID precisasse ser reutilizado, mas isso claramente não é o que está acontecendo.

    
por Gaius 10.04.2016 / 08:19

1 resposta

2

/proc/[pid] desaparece quando o programa sai. Veja isto: link

edit:

A página do manual de espera diz

The wait() function shall suspend execution of the calling thread until status information for one of the terminated child processes of the calling process is available, or until delivery of a signal whose action is either to execute a signal-catching function or to terminate the process.

Portanto, é possível que um sinal para finalizar o processo filho seja entregue. Em seguida, wait retornou, mas o processo filho ainda não foi finalizado. Então você ainda pode ler /proc/pid/stat . Quando o processo filho sai, /proc/pid/stat desaparece.

    
por 10.04.2016 / 10:18