"Respawning terlalu cepat, berhenti". Bagaimana cara menonaktifkan UPSTART selama 5 menit?

11

Di masa lalu, daemon init digunakan untuk menonaktifkan tugas yang respawn terlalu cepat.

Saya menemukan pada bahaya saya bahwa UPSTART hanya menghentikan mereka. selama-lamanya.

Saya telah menemukan kontrol COUNT dan INTERVAL untuk kapan harus menghentikan pekerjaan yang respawn cepat, tetapi saya tidak dapat menemukan cara memulai kembali pekerjaan itu setelah waktu tunggu yang ditentukan.

  • Ini untuk server jarak jauh yang harus terhubung melalui ssh agar saya bisa kembali ke dalamnya. Tetapi secara teratur memiliki masalah koneksi dan pekerjaan yang menjalankan koneksi ssh sekarat! Saya dengan bodoh berharap pemula untuk menjaga pekerjaan tetap berjalan.

Apakah ada cara, atau apakah saya perlu melakukan sesuatu seperti menjalankan tugas cron untuk memeriksa apakah itu berjalan dan jika tidak me-restart itu?

Keith
sumber

Jawaban:

10

Pemula memungkinkan tidur post-stop untuk menunda memulai kembali pekerjaan. Dari http://upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job

post-stop exec sleep 5

Sekarang ketika pekerjaan gagal, itu akan menunggu 5 detik sebelum mencoba untuk terhubung lagi. Kombinasikan itu dengan mengatur respawn ke sesuatu seperti 10 kali dalam 30 detik dan itu harus mencoba untuk respawn selamanya (itu hanya akan mencoba 7 kali dalam 30 detik, jadi itu seharusnya tidak dikeluarkan dari respawn)

tgm4883
sumber
Ya, saya kira itu solusi yang baik. Saya bertanya-tanya, apakah pemula harus memiliki untuk menentukan waktu tunggu sebelum mencoba untuk menjalankan pekerjaan lagi. Saya benar-benar tidak suka ide itu hanya menghentikan pekerjaan mati. Saya lebih suka cara init menonaktifkan pekerjaan selama lima menit.
Keith
Saya pikir use case yang Anda bicarakan cukup rendah. Jika suatu pekerjaan gagal ada alasan untuk itu, maka itu harus diperbaiki. Kebanyakan orang tidak ingin pekerjaan itu terus mencoba untuk memulai dan gagal karena ini dapat menghapus log dengan informasi berharga atau memiliki hasil bencana lainnya. Saya pikir Anda menggunakan pemula untuk sesuatu yang tidak dirancang untuknya, jadi metode standar untuk memulai kembali mungkin keluar dari pertanyaan. Yang mengatakan, apakah koneksi jaringan pada mesin itu mencoba untuk menyambung kembali ketika koneksi mati? Jika demikian, Anda mungkin dapat memulai pekerjaan Anda di jaringan.
tgm4883
1
Saya yakin Anda benar bahwa ini jauh dari kasus "kebanyakan orang". Karena saya telah meretas sistem slackware dan custom-built selama 20 tahun terakhir, banyak konsep-konsep ini asing bagi saya. Bisakah Anda mengarahkan saya ke arah yang benar untuk menyesuaikan start / restart jaringan Ubuntu? Ya Tuhan, ini membuatku merasa tua dan tidak bisa dihubungi. Saya bisa melakukannya di slackware dalam 10 detik.
Keith
1
ini tercakup dalam buku masak; mereka merekomendasikan untuk menggunakan stanza post-stop: upstart.ubuntu.com/cookbook/#id379
jcomeau_ictx
1
Terima kasih @jcomeau_ictx, persis seperti itu, saya pikir jawabannya harus diperbarui dengan tautannya ke upstart.ubuntu.com/cookbook/#delay-respawn-of-a-job . Juga ada tiket dan tambalan yang diterima untuk permintaan Keith bugs.launchpad.net/upstart/+bug/252997 dengan waktu tunggu respawn sebelum coba lagi.
Andre Miras