Saya sedang mengatur monit dan ingin memonitor aplikasi python yang diberikan. Monit melakukan ini dengan melihat file .pid untuk proses, tapi saya tidak tahu di mana ini akan berada.
Saya juga mencoba membuat executable sederhana saya sendiri dan menjalankannya di sini juga saya tidak tahu di mana file .pid dibuat.
Dan apakah semua proses memiliki file .pid?
linux
monitoring
monit
pid
Yarin
sumber
sumber
.pid
file. Aplikasi (atau skrip start upnya) perlu membuatnya secara eksplisit.Jawaban:
Anda biasanya akan menemukan file PID untuk proses yang di
/var/run/
-daemonisasi pada sistem gaya Redhat / CentOS.Singkatnya, Anda selalu dapat melihat dalam skrip init proses. Misalnya, daemon SSH dimulai dengan skrip di
/etc/init.d/sshd
. Terkadang PID akan didefinisikan di sana (cari pid, PID, PIDFILE, PID_FILE, dll.).Namun, sebagian besar daemon lain pada sistem gaya RHEL sumber
/etc/init.d/functions
skrip untuk beberapa fitur umum.Untuk apa pun yang sumbernya
/etc/init.d/functions
, PID akan tinggal/var/run/*.pid
.Untuk aplikasi khusus, PID akan didefinisikan dalam skrip pembungkus (mudah-mudahan). Kebanyakan pengembang yang saya kenal mengikuti konvensi yang sama dengan daemon di atas.
Jika Anda melakukan pertemuan sesuatu tanpa file PID, ingat bahwa Monit dapat memantau pada patern proses tali juga .
sumber
monit procmatch anything
pada commandline saya dapatkanmonit: invalid argument -- procmatch
. Ada ide?monit -V
) OS / distribusi apa?Pendekatan lain yang saya ambil:
Saya memiliki server database yang berjalan dalam mode tertanam, dan data berada dalam direktori aplikasi yang berisi.
Basis data memiliki sesuatu seperti file .pid, tetapi menyebutnya kunci file. Untuk menemukan file kunci ini, saya mendaftar semua file yang dibuka oleh aplikasi:
Itu memberi saya daftar panjang termasuk soket, pipa, file server dll. Beberapa filter dan saya mendapatkan apa yang saya butuhkan:
sumber