Estou configurando o monit e quero monitorar um determinado aplicativo python. O Monit faz isso olhando os arquivos .pid para processos, mas não sei onde isso seria.
Eu também tentei criar meu próprio executável simples e executá-lo - aqui também não consigo descobrir onde o arquivo .pid é criado.
E todos os processos têm um arquivo .pid?
linux
monitoring
monit
pid
Yarin
fonte
fonte
.pid
arquivo. O aplicativo (ou seu script de inicialização) precisa criar explicitamente um.Respostas:
Você geralmente encontrará os arquivos PID para processos daemonizados nos
/var/run/
sistemas no estilo Redhat / CentOS.Além disso, você sempre pode procurar no script init do processo. Por exemplo, o daemon SSH é iniciado com o script em
/etc/init.d/sshd
. Às vezes, o PID será definido lá (pesquise pid, PID, PIDFILE, PID_FILE, etc.).No entanto, a maioria dos outros daemons nos sistemas no estilo RHEL
/etc/init.d/functions
fornece o script para alguns recursos comuns.Para qualquer coisa que origine
/etc/init.d/functions
, o PID permanecerá/var/run/*.pid
.Para aplicativos customizados, o PID será definido em um script de wrapper (espero). A maioria dos desenvolvedores que conheço segue a mesma convenção que os daemons acima.
Se você faz encontro algo sem um arquivo PID, lembre-se que Monit pode monitorar em um patern corda processo bem .
fonte
monit procmatch anything
a linha de comando recebomonit: invalid argument -- procmatch
. Alguma ideia?monit -V
) Qual SO / distribuição?Outra abordagem que tomei:
Eu tenho um servidor de banco de dados em execução no modo incorporado e os dados estão no diretório do aplicativo que contém.
O banco de dados tem algo como um arquivo .pid, mas chama de arquivo de bloqueio. Para localizar esse arquivo de bloqueio, listei todos os arquivos mantidos abertos pelo aplicativo:
Isso me deu uma longa lista, incluindo soquetes, tubos, arquivos de servidor etc. Poucos filtros e cheguei ao que precisava:
fonte