Saat ini saya menggunakan supervisord untuk mempertahankan 100 contoh skrip yang berjalan sekaligus. Jika ada yang mati maka akan memulai yang baru.
Namun sepertinya akan kesulitan mempertahankan angka yang lebih besar (> 300 proses) dan saya mencari penggantinya. Monit tampaknya tidak melakukan apa yang saya inginkan karena memonitor setiap skrip dan tampaknya tidak dapat dengan mudah menonton 100 instance dari skrip yang sama.
Adakah saran tentang alat berbeda yang bisa saya gunakan?
process
monitoring
jong
sumber
sumber
Jawaban:
Kamu bisa memakai:
untuk mendapatkan jumlah proses anak dari skrip bash (ingat ini termasuk ps). Jadi jika Anda ingin memiliki 1000 proses, Anda memeriksa untuk melihat apakah itu mengembalikan 1001. Jika tidak menjalankannya dengan:
sehingga mereka dijalankan sebagai anak-anak dari skrip saat ini (dan karena itu termasuk dalam hitungan.) Anda kemudian dapat tidur sebentar, lalu periksa lagi dalam satu lingkaran selamanya. Satu hal yang perlu diingat adalah jika Anda memunculkan proses lain, Anda perlu memodifikasi
ps
perintah untuk memfilter proses yang Anda inginkan.Perintah pertama itu adalah bagian inti dari teka-teki, itu seharusnya hanya sedikit lebih sampai Anda memiliki skrip Anda.
sumber
Saya akan menggunakan
pgrep|wc -l
atau sesuatu seperti itu dalam skrip shell sederhana. Tunggu satu detik (atau kurang di Linux jika Anda mau) antara setiap cek dengansleep
.sumber
Jika skrip Anda mati dan hanya akan kembali ke shell, Anda dapat menggunakan skrip pembungkus untuk setiap contoh:
atau Anda menulis beberapa pembungkus yang memotong skrip, dan menggunakan
wait/waitpid
untuk menangkap proses yang mati.sumber