Saya mencoba mendapatkan shutdown / reboot yang anggun di ArchLinux dengan GNOME Shell. Sekarang, ketika saya meminta shut-down, itu segera dimatikan tanpa memberi waktu buka program untuk menutup / menyimpan file terbuka. Akibatnya, setiap kali saya memulai ulang Chrome (misalnya) itu memberi tahu saya bahwa sesi tidak ditutup dengan benar, dll. Dengan membaca di web saya mengetahui bahwa systemd saat mematikan proses, pertama-tama mengirim SIGTERM
diikuti oleh SIGKILL
jika proses tidak menutup dalam batas waktu tertentu. Namun saya perhatikan bahwa pada sistem saya SIGKILL
dikirim segera setelah SIGTERM
dan saya kira ini adalah penyebab dari penghentian program tidak anggun.
Saya telah menemukan beberapa dokumentasi yang (jika saya membacanya dengan benar) menyatakan bahwa batas waktu sebelum pengiriman SIGKILL
dapat diatur oleh TimeoutStopSec=
opsi. Selain itu pengiriman SIGKILL
juga dapat dinonaktifkan dengan SendSIGKILL=
opsi. Tetapi saya tidak dapat menemukan tempat untuk mengkonfigurasi opsi-opsi itu ... apakah ada file konfigurasi shutdown / reboot systemd di mana saya dapat mengatur opsi-opsi itu?
EDIT:
Saya melakukan beberapa tes dan saya menemukan dua hal menarik:
- Jika saya menutup krom secara manual seperti ini
killall -SIGTERM chrome
, tidak akan mengeluh bahwa belum ditutup dengan benar saat berikutnya saya memulai lagi. Jika saya menutupnya seperti ini sebagai gantinyakillall -SIGKILL chrome
, itu akan mengeluh. Ini memberitahu saya bahwa chrome menangani SIGTERM dengan benar. - Melihat output prosedur shutdown saya, cetakan systemd
Sending SIGTERM...
segera diikuti olehSending SIGKILL...
Menurut komentar di bawah ini, systemd hanya menangani prosesnya saja. Jadi dalam kasus saya GDM. Ini memberitahu saya bahwa masalahnya mungkin:
- baik GDM tidak menutup proses turunannya (mis. Chrome) dengan benar (yaitu dengan mengirimkan SIGTERM kepada mereka)
- atau systemd mengirimkan pesan SIGKILL kepada GDM lebih awal tanpa memberinya waktu untuk menutup anak-anaknya dengan benar.
Apakah ada cara untuk memeriksa / mengkonfigurasi bagaimana sebenarnya GDM menutup anak-anaknya?
systemd's
kontrol - systemd
adalah pid 1
- tetapi eksekutif Chrome dari skrip wrapper dalam sebuah proses subkulit dan memanggil anak sesudahnya. Namun, ia akan melakukan apa yang diperlukan untuk mematikannya zygotes
selama sistem Anda dikonfigurasi dengan benar. Apakah Anda menggunakan salah satu solusi temp-space untuk chrome yang akan Anda rekomendasikan di Arch wiki?
gnome-session
.