Wie überspringe ich die 90er-Zeitüberschreitung in systemd?


15

Ist es möglich, das Zeitlimit der 90er Jahre in systemd interaktiv zu überspringen? Zum Beispiel, wenn es darauf wartet, dass ein Datenträger verfügbar wird oder sich ein Benutzer abmeldet? Ich weiß, dass es irgendwann scheitern wird. Kann ich es jetzt einfach scheitern lassen? Ich hasse es, hilflos auf den Bildschirm zu starren.

Antworten:


11

Sie haben zwei Möglichkeiten:

  1. Sie können TimeoutStopSpec=für eine bestimmte EINHEIT einen bestimmten Wert (in Sekunden *) festlegen , um zu warten. Sie können auch festlegen, infinityin welchem ​​Fall SIGKILL niemals gesendet wird (nicht zu empfehlen, da Sie möglicherweise außer Kontrolle geratene Dienste haben, die sich nur schwer debuggen lassen).

  2. Setzen Sie DefaultTimeoutStopSec=inside /etc/systemd/system.conf(oder user.confoder in einem der *.dVerzeichnisse) auf einen Standardwert, den alle nicht TimeoutStopSpec=angegebenen UNITs verwenden. Die Taubheit bei dieser Einstellung sind die 90er Jahre, die Sie normalerweise sehen.

Manpage-Referenzen:

  • man systemd.service zum TimeoutStopSpec=
  • man systemd-system.conf zum DefaultTimeoutStopSec=

* systemd akzeptiert auch Zeitangaben, zB "2min 3s". Das ist im Mann ausführlich beschrieben.


9
Dies ist nicht interaktiv. Wenn das System die 90er Jahre bereits herunterzählt, ist es zu spät, um diese Änderungen vorzunehmen, und ich bin gezwungen, hilflos zu sitzen.
User7610

@JiriDanek - das liegt daran, dass systemd nicht interaktiv ist und es auch nicht sein soll. Ihr tty-Prozess (in dem Sie die 90er sehen) wird als Kind von init (sytemd) ausgeführt, dh der Prozess, der die 90er anzeigt (getty), ist ein Kind des Prozesses, der sie zählt (systemd). Außerdem ignoriert systemd die meisten Signale. systemd ist nicht dazu gedacht, von einem zufälligen Benutzer vor einem tty kontrolliert zu werden (das wäre ein riesiges Sicherheitsrisiko).
voraussichtlich

4
Ich bin in erster Linie ein Desktop-Benutzer, daher neige ich dazu, die Dinge anders zu sehen. Erinnerst du dich an den Drucker von Torvalds 'Tochter ? Viele Unzulänglichkeiten im Design können durch Sicherheitsbedenken gerechtfertigt sein.
user7610

@JiriDanek - systemd ist kein Anliegen , wäre es eine tatsächliche Angriffsvektor sein. Wenn Sie im richtigen Moment ein korrektes Signal senden könnten, könnten Sie (als gewöhnlicher Benutzer) einen Systemdienst deaktivieren (z. B. SELinux). Gehen Sie einfach zu /etc/systemd/system.con und fügen Sie DefaultTimeout = 3 hinzu. Oder, besser, beheben Sie den fehlgeschlagenen Dienst. Die Tatsache, dass ein Dienst immer ausfällt, ist kein schlechtes Design von systemd, sondern ein schlechtes Design der Person, die die Gerätedatei geschrieben hat.
voraussichtlich

In meinem speziellen Fall ist der Schreiber der Unit-Datei unschuldig. Ich habe gerade einen Tippfehler gemacht, als ich eine Festplatten-UUID kopiert habe. Ich fand es einfach irritierend, eineinhalb Minuten warten zu müssen, bevor systemd aufgab, das zu montieren, und mich in das System einsteigen und das Problem beheben zu lassen. Das lange Timeout macht hier tatsächlich Sinn. Es sei denn, wenn ich dem Administrator weiß, dass dies nicht der Fall ist.
User7610


6

Sie können folgende /etc/systemd/system.confZeilen auskommentieren :

DefaultTimeoutStartSec=90s
DefaultTimeoutStopSec=90s

Ändern Sie den Wert entsprechend Ihren Vorstellungen.


7
Dies ist wie die andere Antwort nicht interaktiv. Wenn das System die 90er Jahre bereits herunterzählt, ist es zu spät, um diese Änderungen vorzunehmen, und ich bin gezwungen, hilflos zu sitzen.
User7610
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.