Monitorando um processo

2

Estou lendo a documentação sobre o supervisor e ele cita:

It’s often difficult to get accurate up/down status on processes on UNIX. Pidfiles often lie. Supervisord starts processes as subprocesses, so it always knows the true up/down status of its children and can be queried conveniently for this data.

  1. O status de um processo não pôde ser recuperado simplesmente por ps? (ou é o problema aqui que o usuário que está consultando o status do processo não deve necessariamente ter acesso total ao ps)
  2. Quais são os problemas com arquivos pid (por exemplo: os serviços geralmente deixam o arquivo pid para trás quando eles travam)?
por Taras 30.04.2013 / 16:47

2 respostas

1
  1. Há apenas um número finito de PIDs disponíveis, portanto, é possível (embora improvável) que o processo seja encerrado e, em seguida, que algum processo completamente diferente seja iniciado com o mesmo PID. Para ter certeza de que você estava olhando o processo certo com ps , você também deveria verificar a hora de início, mas quem se incomoda com isso?
  2. O pidfile é normalmente gerenciado por um script rc, não pelo processo em si, e, como você suspeita, é possível que eles sejam deixados para trás quando um processo ou servidor falha. Então, tem que ser decidido de alguma forma que o pidfile é seguro para ser removido, talvez usando ps para procurar um processo com esse PID. Mas, veja o item 1.
por 02.05.2013 / 14:59
1

Sim, você poderia usar ps. Mas, freqüentemente, programas que fornecem serviços são executados em segundo plano e / ou iniciados no momento da inicialização, portanto, para convienience, um script de shell que os inicia registra seu pid em um runfile.

Sabe-se que os pidfiles perdidos são deixados ao redor depois que o programa morre, então depender apenas do pidfile pode ser superficial.

    
por 30.04.2013 / 16:53

Tags