Я намагаюся отримати витончене відключення / перезавантаження в ArchLinux з GNOME Shell. Тепер, коли я прошу закрити, він негайно вимикається, не даючи часу відкритим програмам граціозно закривати / зберігати відкриті файли. В результаті, коли я перезапустити Chrome (наприклад) він говорить мені , що сесія не була закрита правильно і т.д. Читаючи в Інтернеті я дізнався , що в той час як Systemd вимикаючи процеси, це перший відправити SIGTERMслід , SIGKILLякщо процес не закривається витримавши заданий тайм-аут. Однак я помічаю, що в моїй системі SIGKILLнадсилається одразу після того, SIGTERMі я гадаю, що це причина припинення не витончених програм.
Я знайшов деяку документацію, яка (якщо я її правильно прочитала) зазначає, що час очікування перед відправленням SIGKILLможе бути встановлений TimeoutStopSec=опцією. Також відправлення SIGKILLтакож може бути відключено за допомогою SendSIGKILL=опції. Але я не можу знайти, де налаштувати ці параметри ... чи є файл конфігураційних систем відключення / перезавантаження, де я можу встановити ці параметри?
Редагувати:
Я зробив кілька тестів і виявив дві цікаві речі:
- Якщо я вручну закрию такий хром
killall -SIGTERM chrome, він не поскаржиться, що не був закритий правильно наступного разу, коли я його запускаю ще раз. Якщо я замість цього закриюkillall -SIGKILL chrome, він поскаржиться. Це говорить мені, що хром правильно поводиться з системою SIGTERM. - Дивлячись на результат моєї процедури відключення, системні відбитки
Sending SIGTERM...одразу після цьогоSending SIGKILL...
Відповідно до коментаря нижче, systemd обробляє лише свої процеси. Так у моєму випадку GDM. Це говорить мені, що проблемою може бути:
- або GDM не закриває належних дочірніх процесів (наприклад, Chrome) (тобто, надсилаючи їм SIGTERM)
- або systemd надсилає GDM повідомлення SIGKILL рано, не даючи йому часу правильно закрити своїх дітей.
Чи є спосіб перевірити / налаштувати, як насправді GDM закриває своїх дітей?
systemd'sконтролем - systemdє pid 1- але Chrome виконує зі свого сценарію обгортки в нижній частині корпусу і після цього викликає дочірні процеси. І все-таки вона зробить все, що потрібно, щоб убити її до zygotesтих пір, поки ваша система буде правильно налаштована. Чи використовуєте ви одне з тих тимчасово-просторових рішень для хромування, які ви знайдете рекомендованими у вікі Arch?
gnome-session.