So ändern Sie das Zeitlimit in systemctl

14

Wenn ich mein Debian-System starte, hängt sein Start für ungefähr 2 Minuten in der Leitung:

Loading, please wait...
[    5.191043] systemd-fsck[129]: /dev/mmcblk0p2: clean, 234192/873120 files, 2335263/3491328 blocks
[    6.645242] intel_rapl: no valid rapl domains found in package 0
[    6.643682] systemd-fsck[222]: fsck.fat 3.0.27 (2014-11-12)
[    6.664844] intel_rapl: no valid rapl domains found in package 0
[    6.660702] systemd-fsck[222]: /dev/mmcblk0p1: 3 files, 33/130812 clusters
[    **] A start job is running for LSB: Raise network interf...38s / no limit)

Irgendwann gibt es auf, die Netzwerkschnittstelle zu erhöhen und fährt mit dem Booten fort.

Frage: Wie kann ich das verwendete Zeitlimit ändern systemctl, sodass nach 15 Sekunden nicht mehr versucht wird, die Netzwerkschnittstelle zu erhöhen?

Zusätzliche Informationen: Die Ursache des Problems ist die Verwendung eines WLAN-USB-Dongles auf diesem Computer. Manchmal ist der Dongle da, manchmal nicht. Wenn der Dongle nicht eingesteckt ist, wird die Netzwerkschnittstelle wahrscheinlich nicht angehoben, und ich möchte einfach nicht zu lange warten.

Jealie
quelle

Antworten:

9

Ich hatte ein ähnliches Problem und wurde meinen Kopf über den Mangel an Google Ergebnissen Kratzen (nach auf dieser Seite ein paar Mal zu enden), so dass ich nur auf entschieden zu lesen , wie systemdfunktioniert hier .

Schließlich stellte ich fest, dass networkinges sich tatsächlich um ein SysV-Init-Skript ( /etc/init.d/networking) handelt, das zur systemdLaufzeit ( /run/systemd/generator.late/networking.service) in einen Dienst konvertiert wird , sodass Sie nicht einfach ein vorhandenes Skript ändern können.

Stattdessen müssen Sie es mit einer Datei überschreiben, die zB /etc/systemd/system/networking.service.d/reduce-timeout.confin Ihrem Fall Folgendes enthält:

[Service]
TimeoutStartSec=15
DuBistKomisch
quelle
7

Auf einem System, auf dem Debian Jessie ausgeführt wird, konnte ich den folgenden Code an die Datei anhängen, die sich unter befindet /lib/systemd/system/networking.service.d/network-pre.conf

[Service]
TimeoutStartSec=15

Dies änderte 'no limit' auf ein Limit von 15 Sekunden, wodurch das System viel schneller bootet, wenn das Netzwerk getrennt wird.

Das Erstellen einer Datei in /etc/systemd/system/networking.service.d/hatte keine Auswirkung auf dieses System, daher habe ich die vorhandene Datei in der Datei bearbeitet /lib/systemd/system/networking.service.d/. Wenn dieses Verzeichnis leer ist, sollte das Erstellen einer neuen .conf-Datei mit dem obigen Code funktionieren.

Nicht sicher, warum das anders ist oder ob es überhaupt die richtige Art ist, so etwas zu konfigurieren.

Proctoru2
quelle
Diese Lösung hat auch bei mir funktioniert. Der Akzeptierte tat es nicht.
Moritz
AFAIK /lib/systemd/...ist für Originalskripte und /etc/systemd/...für lokales Überschreiben gedacht , daher bin ich mir nicht sicher, warum es bei Ihnen nicht funktioniert. Ich bin auch auf Jessie.
DuBistKomisch
/lib/systemd/system/networking.serviceim stretch ist eine timeout von 5min enthalten !!
Philippe Gachoud
5

Ich hatte ein ähnliches Problem und es stellte sich heraus, dass mein System versucht hat, eine Verbindung zu Wi-Fi herzustellen. Meine Lösung bestand darin, diese Zeile in / etc / network / interfaces zu ändern:

auto wlan0

zu:

allow-hotplug wlan0
Tshepang
quelle
Dies funktionierte gut für mein Asus P5Q-Board mit vier Netzwerkkarten (es ist schwer zu wissen, welche der vier als eth0 zugewiesen ist). Ich wechselte auto eth0zu allow-hotplug eth0\ n allow-hotplug eth1\ n allow-hotplug eth2\ nallow-hotplug eth3
Cauterite
1

Dies ist ein Problem in den Netzwerkskripten von Debian - sie warten anscheinend auf das Erscheinen aller Schnittstellen und haben keine Vorstellung von "dynamisch erscheinenden" Schnittstellen (wie es der systemd-networkdFall ist).

Sie haben zwei Lösungen. Die erste Lösung besteht darin, das Konfigurationszeitlimit zu verringern. Wie Sie jedoch aus der von Ihnen veröffentlichten Ausgabe ( ...38s / no limit) ersehen können , legt systemd dem Netzwerkstart keine Zeitüberschreitungen auf. Dies ist also etwas, das Sie in den Debian-spezifischen Skripten selbst konfigurieren müssen.

Die zweite Lösung besteht darin, modernere Tools zur Konfiguration Ihres Netzwerks zu verwenden (z. B. NetworkManager), die dynamisch erscheinende Schnittstellen unterstützen. Beachten Sie, dass dies systemd-networkdhier nicht von großem Nutzen ist, da es keine integrierte Unterstützung für WLAN-Netzwerke gibt.

intelfx
quelle
Vielen Dank für Ihre Antwort. Gibt es Hinweise, wie das Timeout systemdin den Debian-spezifischen Skripten konfiguriert werden kann ? Jeder Hinweis auf irgendeine Art von Lösung wäre sehr willkommen! (Ich habe viel Zeit damit verbracht, mit Optionen zu googeln und empirisch
Jealie
@Jealie: Ich habe noch nie Debian oder eines seiner Derivate verwendet, daher kann ich Ihnen hier leider nicht weiterhelfen. Es wäre besser, wenn Sie Ihrer Frage ein "debian" -Tag hinzufügen würden, aber Sie haben meine Bearbeitung abgelehnt, die genau diese Änderung vorschlug ...
intelfx
@Jealle: Ah, hm, dann muss ich etwas falsch verstanden haben ... Entschuldigung.
intelfx