Mengurangi batas waktu shutdown untuk "pekerjaan berhenti sedang berjalan"

16

Saya punya node.js dan pm2 diinstal pada Pi (Raspbian). PM2 dikonfigurasi untuk memulai melalui pm2 startupdan skrip init yang dibuatnya. Kadang-kadang ketika saya reboot, shutdown hang selama beberapa menit pada:

A stop job is running for LSB: PM2 init script (... / 5min)

Setiap sekali-sekali 1 apa yang saya mengasumsikan adalah PM2 tidak dimatikan dengan benar dan hang untuk penuh 5 menit.

Pada sistem ini, saya tahu persis apa yang dikelola aplikasi PM2 dan saya benar-benar tidak peduli jika mereka dimatikan dengan benar.

Pertanyaan saya adalah: Bagaimana cara mengurangi batas waktu dari 5 menit menjadi, katakanlah, sekitar 15 detik? Di mana ini dikonfigurasi?

Saya membaca di forum bahwa itu adalah DefaultTimeoutStopSeckunci di /etc/systemd/system.conf , jadi saya mencoba mengaturnya ke "15s" tetapi tidak berpengaruh. Saya mencoba hal yang sama di /etc/systemd/user.conf , juga, tetapi tidak ada perubahan. Batas waktu masih diatur ke 5 menit.


1 Saya benar-benar tahu secara spesifik apa yang memicu ini, tetapi detailnya tidak penting dan efeknya tidak dapat dihindari.

Jason C
sumber
1
Jika ada stopskrip (default) , Anda dapat menulis ulang skrip untuk menjalankan forcestopatau bahkan membunuh pm2daripada mematikan dengan anggun.
Tigger
@ Tigger Saya sampai pada kesimpulan yang sama, sebenarnya. Karena putus asa, saya hanya membuat stopskrip init pm2 tidak melakukan apa-apa, dan membiarkannya mati secara alami pada saat shutdown. Ini solusi mengerikan untuk penggunaan umum tetapi pada sistem khusus ini tidak masalah. Saya masih ingin tahu cara mengubah batas waktu 5 menit.
Jason C

Jawaban:

8

Bagaimana cara mengurangi batas waktu dari 5 menit menjadi, katakanlah, sekitar 15 detik?

Anda membangun kembali systemd dari sumber, menambal batas waktu bawaansystemv-sysv-generator dari TimeoutSec=5minapa pun yang Anda inginkan. Atau Anda meminta orang-orang systemd untuk kenop kontrol di suatu tempat di header Fedora / SUSE atau LSB.

Atau, di sisi lain, Anda menyerah menggunakan rcskrip ini yang Anda miliki dan menulis unit layanan systemd untuk layanan Anda, yang timeout-nya dapat Anda atur dengan TimeoutSec=pengaturan eksplisit , diinstal dengan file pengaturan drop-in /etc/systemd/system/pm2.service.d/timeout.confjika diperlukan.

Mengingat ini , ini , ini , ini , ini , dan lainnya, aturan pertama untuk bermigrasi ke systemd juga berlaku di sini.

Bacaan lebih lanjut

JdeBP
sumber
15

/etc/systemd/system.conf memiliki garis

#DefaultTimeoutStopSec=90s

yang dapat dibatalkan komentar dan diubah

Wolfgang Fahl
sumber
Saya menyebutkan bahwa dalam posting saya dan perubahan itu tidak berpengaruh.
Jason C
pengaturan 45-an di Arch Linux membuat shutdown cepat pada nvmedrive - untuk shutdown sangat cepat menggunakan Alpine Linux (nosystemd )
Stuart Cardall