Я намагаюся отримати витончене відключення / перезавантаження в 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
.