Как пропустить тайм-аут 90-х в systemd?

15

Можно ли интерактивно пропустить тайм-аут 90-х в systemd? Например, когда он ожидает, когда диск станет доступным или пользователь выйдет из системы? Я знаю, что это в конечном итоге потерпит неудачу, так что я могу просто сделать это сейчас? Я ненавижу просто беспомощно пялиться на экран.

user7610
источник

Ответы:

11

У вас есть два варианта:

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

  2. Установите DefaultTimeoutStopSec=внутри /etc/systemd/system.conf(или user.conf, или в одном из *.dкаталогов) значение по умолчанию, которое TimeoutStopSpec=будут использовать все UNIT, которые не указаны. По умолчанию это значение 90-х годов, которое вы обычно видите.

Ссылки на справочную страницу:

  • man systemd.service за TimeoutStopSpec=
  • man systemd-system.conf за DefaultTimeoutStopSec=

* systemd также принимает спецификации времени, например, "2min 3s". Это подробно описано в человеке.

grochmal
источник
10
Это не интерактивно. Когда systemd уже ведет обратный отсчет 90-х, уже слишком поздно вносить эти изменения, и я вынужден сидеть, хотя и беспомощно.
user7610 16.09.16
@JiriDanek - потому что systemd не интерактивен, он не предназначен для этого. Ваш tty-процесс (в котором вы видите 90-е) запускается как дочерний элемент init (sytemd), то есть процесс, показывающий (getty) 90-е, является дочерним по отношению к процессу, считающему их (systemd). Более того, systemd игнорирует большинство сигналов. systemd не предназначен для управления случайным пользователем перед tty (это было бы огромной угрозой безопасности).
Горький
4
Я в основном пользователь настольного компьютера, поэтому я склонен смотреть на вещи по-другому. Помните принтер дочери Торвальдса ? Многие недостатки дизайна могут быть оправданы соображениями безопасности.
user7610 16.09.16
@JiriDanek - systemd не является проблемой , это был бы настоящий вектор атаки. Если бы вы могли направить правильный сигнал в нужный момент, вы могли бы (как обычный пользователь) отключить системную службу (например, SELinux). Просто зайдите в /etc/systemd/system.con и добавьте DefaultTimeout = 3. Или, лучше, исправить службу, которая не работает. Тот факт, что некоторые службы всегда терпят неудачу, - это не плохой дизайн systemd, это плохой дизайн человека, который написал файл модуля.
горький
В моем конкретном случае, автор файла модуля невиновен. Я только что сделал опечатку при копировании-вставке диска UUID. Я просто находил раздражающим необходимость ждать целую минуту и ​​половину, прежде чем systemd отказался от монтирования, и позволил мне войти в систему и решить проблему. Длинный тайм-аут на самом деле имеет здесь смысл. За исключением случаев, когда я админ знаю, что нет.
user7610 16.09.16
7

Это невозможно. Systemd не является интерактивным.

user7610
источник
6

Вы можете раскомментировать в /etc/systemd/system.confстроках:

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

И измените значение на то, что вы считаете целесообразным.

Msegade
источник
7
Так же, как и другой ответ, это не интерактивно. Когда systemd уже ведет обратный отсчет 90-х, уже слишком поздно вносить эти изменения, и я вынужден сидеть, хотя и беспомощно.
user7610 16.09.16