Menu

<< | Zurück

Das System wurde nicht mit Systemd als Init-System gebootet

  • System Has Not Been Booted With Systemd as Init System

Viele Benutzer berichten, dass sie die Fehlermeldung „Das System wurde nicht mit systemd als Init-System (PID 1) gebootet. Der Betrieb ist nicht möglich.“ erhalten haben. Dieser Fehler tritt normalerweise auf, wenn sie einen systemd-Befehl unter Linux-Systemen ausführen.

Der Grund für diesen Fehler ist, dass das Linux-System nicht systemd als Init-System verwendet. Wie wir alle wissen, läuft der Bootvorgang des Linux-Systems wie folgt ab

  • Schalten Sie den PC ein und das BIOS wird aktiviert.
  • Das BIOS liest den MBR, um den Bootloader zu finden.
  • Der Bootloader lädt den Systemkernel, der die Hardwareressourcen des Computers verwaltet und als Schnittstelle zwischen Software und Hardware fungiert.
  • Der Kernel aktiviert dann einen Init-Prozess (seine Prozess-ID ist 1), der der erste Prozess des Systems ist. Er ist für das Starten aller anderen Benutzerprozesse verantwortlich. Der Init-Prozess ist einzigartig und kann Aufgaben ausführen, die andere Prozesse nicht ausführen können.

Was ist dann ein Init-System? Das Init-System kann das Verhalten des Init-Prozesses definieren, verwalten und steuern. Und es ist für die Organisation und Ausführung vieler unabhängiger oder verwandter Initialisierungsaufgaben verantwortlich, sodass das Computersystem reibungslos in einen bestimmten, vom Benutzer abonnierten Betriebsmodus wechseln kann.

Linux-Systeme haben viele Init-Systeme, wie System III, System V, Upstart usw. Seit 2015 haben die meisten Linux-Distributionen jedoch systemd übernommen, um diese traditionellen Init-Systeme zu ersetzen. Darüber hinaus ist systemd abwärtskompatibel mit System V.

In den folgenden beiden Fällen wird systemd jedoch nicht standardmäßig aktiviert

  1. Sie verwenden Linux-Systeme im WSL (Windows-Subsystem für Linux) oder docker
  2. Sie haben den Init-Vorgang (/sbin/init) übersprungen.
Lösung
verwendet das Linux-System das System-V-Init-System anstelle von systemd. In diesem Fall können Sie keine systemd-Befehle ausführen, aber Sie können entsprechende Sysvinit-Befehle ausführen.
Diese Tabelle kann Ihnen dabei helfen.
Systemd command Sysvinit command
systemctl start rsyslog service rsyslog start
systemctl stop rsyslog service rsyslog stop
systemctl restart rsyslog service rsyslog restart
systemctl status rsyslog service rsyslog status
systemctl enable rsyslog chkconfig rsyslog on
systemctl disable rsyslog chkconfig rsyslog off