Je configure monit et souhaite surveiller une application python donnée. Monit fait cela en regardant les fichiers .pid pour les processus, mais je ne sais pas où cela se trouverait.
J'ai également essayé de créer mon propre exécutable simple et de l'exécuter - ici aussi, je ne peux pas comprendre où le fichier .pid est créé.
Et tous les processus ont-ils un fichier .pid?
linux
monitoring
monit
pid
Yarin
la source
la source
.pid
fichier. L'application (ou son script de démarrage) doit en créer explicitement un.Réponses:
Vous trouverez généralement les fichiers PID pour les processus démonisés dans
/var/run/
les systèmes de style Redhat / CentOS.En dehors de cela, vous pouvez toujours regarder dans le script d'initialisation du processus. Par exemple, le démon SSH est démarré avec le script dans
/etc/init.d/sshd
. Parfois, le PID y sera défini (recherche de pid, PID, PIDFILE, PID_FILE, etc.).Cependant, la plupart des autres démons sur les systèmes de style RHEL source le
/etc/init.d/functions
script pour certaines fonctionnalités courantes.Pour tout ce qui source
/etc/init.d/functions
, le PID vivra/var/run/*.pid
.Pour les applications personnalisées, le PID sera défini dans un script wrapper (espérons-le). La plupart des développeurs que je connais suivent la même convention que les démons ci-dessus, cependant.
Si vous faites quelque chose de rencontre sans un fichier PID, rappelez - vous que Monit peut surveiller sur une patern chaîne de processus ainsi .
la source
monit procmatch anything
sur la ligne de commande j'obtiensmonit: invalid argument -- procmatch
. Des idées?monit -V
) Quel OS / distribution?Une autre approche que j'ai adoptée:
J'ai un serveur de base de données fonctionnant en mode intégré et les données se trouvent dans le répertoire de l'application contenant.
La base de données a quelque chose comme un fichier .pid, mais elle l'appelle fichier de verrouillage. Pour localiser ce fichier de verrouillage, j'ai répertorié tous les fichiers ouverts par l'application:
Cela m'a donné une longue liste comprenant des sockets, des tuyaux, des fichiers de serveur, etc. Peu de filtres et j'ai obtenu ce dont j'avais besoin:
la source