Wie andere hier bereits angemerkt haben, sollte dies theoretisch keine Auswirkungen auf den nicht-technischen Endbenutzer haben - und theoretisch gibt es keinen Unterschied zwischen Theorie und Praxis, aber in der Praxis.
Klärung
Ich denke, dass einige Dinge, die hier gepostet werden, einer Klärung bedürfen:
Es ist ein Init-System, mit dem Benutzer traditionell nicht interagieren.
Dies war bei SysV init und Upstart der Fall, bei systemd jedoch nicht mehr. Es macht eine Menge Dinge, mit denen Benutzer traditionell interagieren:
Es sollte die von Upstart bereitgestellten Funktionen vollständig ersetzen und ein paar zusätzliche Dinge tun
Zwei Dinge, die geklärt werden müssen - zuerst, um Upstart vollständig zu ersetzen:
Keine SysV-Init-Skripte
Eines der Probleme, die Menschen mit systemd haben, ist, dass es keine SysV-Init-Skripte ausführt. Es gibt also ein Beispiel, das die von Upstart bereitgestellten Funktionen nicht vollständig ersetzt.
Darauf können wir uns seit über 30 Jahren verlassen. Traditionell haben Sie SysV-Init-Skripte geschrieben, um maximale Portabilität zu erzielen, ohne sich zu wiederholen (indem Sie mehrere Versionen derselben Skripte schreiben), was nicht mehr der Fall ist.
Dies sollte kein Problem sein, wenn nur Pakete aus offiziellen Repositorys verwendet werden, da vermutlich bei allen Paketen, für die zuvor SysV-Init- oder Upstart-Skripts verwendet wurden, die Skripts neu geschrieben werden müssen, bevor sie gepackt werden.
Dies ist nur für Benutzer problematisch, die Software von Drittanbietern oder benutzerdefinierte Software verwenden, deren Init-Skripte entweder für SysV init oder für Upstart geschrieben wurden, und für die die Init-Skripte vor dem Upgrade auf ein System mit systemd (oder get neu geschrieben werden müssen der installierte Upstart, der auch eine Option ist , oder die Migration auf ein System, das systemd nicht verwendet.
Es gibt systemd-sysv-generator, der SysV-Init-Skripte automatisch in systemd-Skripte übersetzen soll, aber es gibt einige Fehler und eine lange Liste expliziter Inkompatibilitäten .
Nun die zweite Klarstellung - über diese wenigen zusätzlichen Dinge:
Ein paar zusätzliche Dinge
Die "wenigen zusätzlichen Dinge", die systemd - gemäß einer Perspektive für systemd - behandeln wird - was erreicht wurde und was vor der Präsentation von Lennart Pöttering auf GNOME.asia im Jahr 2014 liegt - sind die folgenden:
- Init-System
- Journal-Protokollierung
- Login-Verwaltung
- Geräteverwaltung
- Temporäre und flüchtige Dateiverwaltung
- Registrierung im Binärformat
- Hintergrundbeleuchtung speichern / wiederherstellen
- rfkill speichern / wiederherstellen
- Bootchart
- lesen Sie weiter
- verschlüsselte Speicherkonfiguration
- EFI / GPT-Partitionserkennung
- Registrierung der virtuellen Maschine / des Containers
- Containerverwaltung
- Verwaltung von Hostnamen
- Gebietsschemaverwaltung
- Zeiteinteilung
- zufällige Saatgutverwaltung
- Sysctl-Variablenverwaltung
- Konsolenverwaltung
- Selbstbeobachtung
- automatische Erkennung
- Plug and Play
- Netzwerk Management
- systemd-networkd
- DNS-Cache
- mDNS-Responder
- LLMNR-Antwortender
- DNSSEC-Überprüfung
- IPC im Kernel
- kdbus
- SD-Bus
- Zeitsynchronisation mit NTP
- systemd-timesyncd
- Integration mit Containern
- Sandboxing von Diensten
- Sandboxing von Apps
- Betriebssystem-Image-Format
- Container-Bildformat
- App-Bildformat
- GPT mit automatischer Erkennung
- Staatenlose Systeme
- instanziierbare Systeme
- Werkseinstellungen zurückgesetzt
- Knoteninitialisierung und Updates
- Integration in die Cloud
- Service Management über Knoten hinweg
- überprüfbare Betriebssystem-Images bis hin zur Firmware
- Boot wird geladen
- Aufbau des Internet-Betriebssystems der nächsten Generation Vereinheitlichen Sie sinnlose Unterschiede zwischen Distributionen
Zurück zu: "Es ist ein Init-System, mit dem Benutzer traditionell nicht interagieren." - Es muss darauf hingewiesen werden, dass das Init-System nur ein Punkt in dieser Liste ist.
Und zum Schluss möchte ich noch Folgendes kommentieren:
[D] Das einzige Mal, wenn ein nicht technischer Benutzer dies sieht, ist, wenn es schief geht.
Oh, was für eine Erleichterung. :)
Änderungen
Die wichtigsten Änderungen für Endbenutzer (außer den Skripten selbst) betreffen das Starten und Beenden von Diensten und die Verwendung von Befehlen wie:
die nicht mehr wie erwartet funktionieren. nohup
Ein POSIX-Befehl stellt beispielsweise sicher, dass der Prozess weiter ausgeführt wird, nachdem Sie sich von Ihrer Sitzung abgemeldet haben. Auf systemd funktioniert es nicht mehr . Auch Programme wie screen
und tmux
müssen auf besondere Weise aufgerufen werden, da sonst die Prozesse, die Sie mit ihnen ausführen, abgebrochen werden.
Dies ist kein Fehler, es ist eine Designentscheidung, daher ist es unwahrscheinlich, dass es in Zukunft behoben wird. Das hat Lennart Pöttering zu diesem Thema gesagt :
Meiner Ansicht nach war es für UNIX eigentlich ziemlich seltsam, dass es nach dem Abmelden standardmäßig beliebigen Benutzercode uneingeschränkt herumstehen lässt. Unter vielen OS-Anwendern wird seit Ewigkeiten diskutiert, dass dies möglich sein sollte, aber sicherlich nicht die Standardeinstellung, aber bisher wagte es niemand, den Schalter zu betätigen, um ihn von einer Standardeinstellung in eine Option umzuwandeln. Das Bereinigen von Benutzersitzungen nach dem Abmelden ist nicht nur hässlich und etwas hackisch, sondern auch ein Sicherheitsproblem. systemd 230 hat jetzt endlich den Schalter umgelegt und standardmäßig alles richtig aufgeräumt, wenn sich der Benutzer abmeldet.
Für weitere Informationen siehe:
Laufen screen
- Emporkömmling:
screen
- systemd:
systemd-run --user --scope screen
(Hinweis: Das Verhalten von "upstart" oben ist wirklich alles außer systemd, dies ist nicht spezifisch für den upstart)
Berufseinstieg foo:
- Emporkömmling:
start foo
- systemd:
systemctl start foo
Job beenden:
- Emporkömmling:
stop foo
- systemd:
systemctl stop foo
Job foo neu starten:
- Emporkömmling:
restart foo
- systemd:
systemctl restart foo
Jobs mit ihrem Status auflisten:
- Emporkömmling:
initctl list
- systemd:
systemctl status
(Siehe meine Antwort auf Was sind die Vor- / Nachteile von Upstart und systemd? Für weitere Einzelheiten, die für diese Frage nicht relevant sind.)
Protokolle
Es gibt auch einen großen Unterschied im Umgang mit den Protokollen, da die Protokolle von systemd entgegen der Unix-Tradition in Binärdateien in einem benutzerdefinierten Format gespeichert werden, anstatt:
cat /var/log/upstart/foo.log
tail -f /var/log/upstart/foo.log
Sie benötigen spezielle Befehle, um auf Ihre Protokolle zuzugreifen:
sudo journalctl -u foo
sudo journalctl -u foo -f
Kontroversen
Die Einführung von systemd in Debian und später in Ubuntu war nicht ohne Kontroversen und großen Widerstand, wie jeder weiß, der einen der folgenden Artikel geschrieben hat:
Die offizielle Debian-Position zu systemd und die sich daraus ergebende Kontroverse führten 2014 zur Erklärung von Exodus und endeten mit dem Rücktritt von Ian Jackson .
Die Initiativen Init Freedom , Without-Systemd.org und Systemd-Free.org wurden ins Leben gerufen und in den Hacker News viel diskutiert .
Weitere Lektüre