Watchdog kami telah memulakan semula perkhidmatan yang kami hentikan dengan sengaja

Operasi

Salah satu watchdog kami memulakan mana-mana perkhidmatan kami yang didayakan tetapi tidak berjalan. Dua kali pada bulan Oktober, ia memulakan perkhidmatan yang kami hentikan dengan sengaja. Kali kedua, pengunjung ke salah satu laman kami menerima ralat selama kira-kira 45 minit.

Sebab watchdog itu wujud

Perkhidmatan yang keluar dengan bersih apabila menerima SIGTERM, contohnya kerana sesuatu membunuhnya berdasarkan nama, tidak dianggap "gagal" oleh systemd. Restart=on-failure tidak mengembalikannya, dan systemctl --failed tidak menyenaraikannya. Ia kekal mati sehingga seseorang secara kebetulan menyedarinya. Jadi, watchdog mencari perkhidmatan yang didayakan tetapi tidak berjalan, dan memulakannya.

Masalahnya ialah perkhidmatan yang anda hentikan secara manual kelihatan sama persis.

Kali pertama

Pada 7 Oktober, kami menghentikan pekerja video dengan systemctl stop pada pukul 12:47 untuk menyunting baris gilir kerjanya. Pada pukul 12:55, ia sudah berjalan semula: watchdog telah memulakannya.

Kali kedua

Pada 21 Oktober, kami memerlukan memori mesin yang juga melayan dua laman kami untuk ujian model. Satu skrip menghentikan aplikasi web laman tersebut, satu kerja penyegerakan dan satu bekas pangkalan data, sekali lagi dengan systemctl stop. Kira-kira lima minit kemudian, satu pemasa yang memantau laman-laman tersebut, dan pada pukul 19:14 watchdog, telah menghidupkan semula terowong dan aplikasi web.

Terowong itu mula menerima trafik semula, tetapi aplikasi web tidak dapat menjawab: model yang diuji memegang 114 GiB daripada memori mesin. Dari kira-kira pukul 19:14 hingga 20:00, sesetengah pengunjung menerima ralat 502. Pada pukul 20:00, kami melumpuhkan terowong, aplikasi web dan kerja penyegerakan, serta menghentikan pemasa pemantauan.

Peraturan yang kami gunakan sekarang

Dua lagi perangkap systemd daripada bulan yang sama

Factory Floor memantau perkhidmatan yang didayakan tetapi tidak berjalan. Secara lalai, ia hanya melaporkannya, dan ia memulakannya hanya jika anda mengaktifkan pilihan itu. Sejak versi 1.0.3, amaran itu juga menyatakan cara menjeda perkhidmatan secara sengaja, dan runbooknya menyatakan perkara yang sama.

Dikemas kini: