Saya memiliki proxy web Nginx, server web gunicorn, dan aplikasi web python / flask. Proses Gunicorn rupanya mati, dan saya ingin memperbaiki itu di masa depan dengan melihat ke utilitas yang dapat memantau dan memulai kembali proses gunicorn jika terjadi crash lagi.
Saya telah menemukan beberapa yang dapat melakukan pekerjaan:
- pemula
- menjalankannya
- pengawas
- daemontools
- masih banyak lagi
Apakah ada artikel komprehensif yang membandingkan dan membedakan berbagai utilitas yang digunakan untuk memantau dan memulai kembali suatu proses?
upstart
supervisord
daemontools
runit
Matthew Moisen
sumber
sumber
Jawaban:
runit
adalah penerusdaemontools
(keduanya ditulis dalamc
)supervisord
menggunakanpython
.Saya telah menggunakan
runit
dengansocklog
penulis yang sama di dalam wadah Alpine Linuxlxc
selama sekitar 10 bulan untuk mengelolaweb
/database
& berbagai layanan lainnya. Ringan, mudah dikelola & saya tidak mengalami kegagalan layanan. Daemon logging juga berjalan seperti miliknya sendiri & tidakroot
bagus.voidlinux digunakan
runit
sebagaiinit
sistemnya & juga untuk pengawasan layanan (cari pohon paketrun
untuk contohrunit
skrip).sumber
Jika distro Anda menggunakan pemula, ikuti saja. Ini memiliki dukungan yang sangat mendasar untuk memulai kembali pekerjaan, tetapi mencakup batas yang dapat mencegah dari memulai kembali loop, seperti yang disebutkan oleh @EEAA.
Jika OS Anda menggunakan program init lain, jangan mengubahnya. Saya benar-benar tidak dapat membantu Anda dengan alat-alat lain yang Anda sebutkan, karena saya biasanya menggunakan Ubuntu di mana Upstart masih ada (pada LTS terbaru), jadi saya tidak ada hubungannya dengan mereka. Tapi itu bukan tugas yang sulit untuk membuat skrip sederhana yang dijalankan dari cron satu menit sekali (atau lebih sering dalam. A loop), yang dapat memeriksa apakah ada PID dan masalah restart pada kegagalan.
sumber