Як пропустити тайм-аут 90-х у systemd


15

Чи можна інтерактивно пропустити тайм-аут 90-х у systemd? Наприклад, коли він чекає, коли диск стане доступним або користувач вийшов? Я знаю, що в кінцевому підсумку це вийде з ладу, тож чи можу я просто зробити так, що зараз він провалиться? Я ненавиджу просто безпомічно дивитись на екран.

Відповіді:


11

У вас є два варіанти:

  1. Ви можете встановити TimeoutStopSpec=для конкретного UNIT певне значення (в секундах *), щоб зачекати. Ви також можете встановити його infinityв такому випадку, коли SIGKILL ніколи не буде надісланий (не рекомендується, оскільки у вас можуть виникнути сервіси, які важко відладкувати).

  2. Встановіть DefaultTimeoutStopSec=всередині /etc/systemd/system.conf(або user.confв одному з *.dкаталогів) значення за замовчуванням, яке використовуватимуть усі UNIT, які не TimeoutStopSpec=вказані. Глухим для цього параметра є 90-ті, які ви зазвичай бачите.

Посилання на чоловічу сторінку:

  • man systemd.service для TimeoutStopSpec=
  • man systemd-system.conf для DefaultTimeoutStopSec=

* systemd також приймає часові характеристики, наприклад, "2min 3s". Це широко описано у людини.


10
Це не інтерактивно. Коли systemd вже відраховує 90-ті, вже пізно вносити ці зміни, і я змушений сидіти, хоча це безпомічно.
користувач7610

@JiriDanek - це тому, що systemd не є інтерактивним, цього не передбачається. Ваш процес tty (в якому ви бачите 90-ті роки) працює як дитина init (sytemd), тобто процес, що показує (getty) 90-ті, є дочірнім процесом підрахунку їх (systemd). І крім того, systemd ігнорує більшість сигналів. systemd не повинен контролюватися випадковим користувачем перед tty (це було б величезним ризиком для безпеки).
grochmal

4
Я в першу чергу настільний користувач, тому я схильний бачити речі по-іншому. Пам'ятаєте принтер дочки Торвальда ? Багато недоліків дизайну можуть бути виправдані проблемами безпеки.
користувач7610

@JiriDanek - systemd - це не проблема , це був би фактичний вектор атаки. Якщо ви могли націлити правильний сигнал у потрібний момент, ви могли (як звичайний користувач) відключити системну службу (наприклад, SELinux). Просто зайдіть у /etc/systemd/system.con та додайте DefaultTimeout = 3. Або, краще, виправити послугу, яка не працює. Те, що деякі сервіси завжди виходять із ладу, не є поганим дизайном systemd, це поганий дизайн людини, яка написала файл файлу.
grochmal

У моєму конкретному випадку автор файлу підрозділу невинний. Я щойно робив помилку, коли копіював UUID диска. Мені просто здалося, що це дратує необхідність чекати повну хвилину і половину, перш ніж systemd відмовився від монтажу, і дозволив мені ввійти в систему і виправити проблему. Тут довгий час очікування має сенс. За винятком випадків, коли я адміністратор знаю, що це не так.
user7610


6

Ви можете коментувати /etc/systemd/system.confрядки:

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

І змініть значення на те, що вважаєте за потрібне.


7
Як і інша відповідь, це не інтерактивна. Коли systemd вже відраховує 90-ті, вже пізно вносити ці зміни, і я змушений сидіти, хоча це безпомічно.
користувач7610
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.