kimura Geschrieben 1. September 2022 Geschrieben 1. September 2022 Hallo zusammen, im Rahmen meiner Vorbereitung auf LPIC-1 bin ich nun gerade dabei, das Thema Runtimes/systemd bzw. Systeminitialsierung zu lernen. So wie ich es verstehe stellt systemd, ähnlich wie upstart oder sysv, einen (nach Laden des Kernels) init Prozess dar, welcher die jeweiligen Runtimes verwaltet, bzw. gestaltet mit den jeweiligen Prozessen aus den jeweils definierten Units (?). Was ich mich nun Frage ist, woher weiss der init Prozess welche Runtime er nutzen soll? Wo ist das ganze definiert bzw. wie erkennt beispielsweise systemd dies? Auf meinem Kali Linux liegen die Runtimes bzw. deren Skripte für die aus zu führenden Prozesse in /etc/rc*.d. Die laufenden Prozesse sehe ich mit ps aux und die laufenden units mit systemctl list-units so wie ich es verstehe. Mir fehlt aber das Verständnis dafür, wann welche Runtime genutzt wird. Beim Start oder Shutdown wird denke ich mal automatisch 0 oder 6 gewählt, aber wo sehe ich das bzw. könnte das ändern? Ich hoffe es ist nicht zu wirr, was ich hier runter geschrieben habe, aber ich versuche euch so einen Einblick über meinen derzeitigen Stand, die Perspektive meine Wissenslücken oder Verständnisfehler zu geben. Vielen Dank für jeden der sich hierfür Zeit nimmt! Zitieren
charmanta Geschrieben 1. September 2022 Geschrieben 1. September 2022 vor 22 Minuten schrieb kimura: Auf meinem Kali Linux liegen die Runtimes bzw. deren Skripte für die aus zu führenden Prozesse in /etc/rc*.d. Die laufenden Prozesse sehe ich mit ps aux und die laufenden units mit systemctl list-units so wie ich es verstehe. Mir fehlt aber das Verständnis dafür, wann welche Runtime genutzt wird. Beim Start oder Shutdown wird denke ich mal automatisch 0 oder 6 gewählt, aber wo sehe ich das bzw. könnte das ändern? das ist die gute alte Lösung. Neuerdings arbeiten die Distros ja nur noch mit systemctl & co .... keine Ahnung, wer den Unsinn braucht. Seit Jahrzehnten sind die Runstates 0,1 und 6 genormt als Stop, SingleUser und Reboot In der /etc/inittab findest Du einen Eintrag für "initdefault" und das ist der Standardmultiuser mit Netzwerk und allen Extras Wenn die Systeme neuer sind kannst Du mit "systemctl get-default" den Standardwert abfragen. Zitieren
charmanta Geschrieben 1. September 2022 Geschrieben 1. September 2022 Nachtrag: beim Start durchläuft das System dann von 1 bis INITDEFAULT die runstates. DIe meisten Systeme haben 2 oder 3 als Standard, die alten 5 Zitieren
Han_Trio Geschrieben 1. September 2022 Geschrieben 1. September 2022 Moin, systemd benutzt "nicht wirklich" mehr runlevels, obwohl es die entsprechenden commands noch gibt, und das Konzept von runlevels weiterhin gültig ist. Vielmehr geht es um sog. targets bzw. unit targets. Das, was du suchst, ist das default.target (dieses wird von systemd beim Systemstart benutzt). Das default.target verweist dann auf ein bestimmtes anderes target (per Symlink), welches wiederum den Start-Zustand definiert (also das runlevel, wenn du so möchtest). Die beiden gängigsten targets sind zB: - graphical.target (= runlevel 5) - multi-user.target (= runlevel 3) Hier ganz gut erklärt: https://opensource.com/article/20/5/systemd-startup -> Abschnitt "Targets", etwas weiter unten Bei mir auf dem Desktop (Linux Mint) stellt sich das zB so dar: sudo find / -iname default.target -> ich suche überall nach einem file, welches eben "default.target" heißt. Ergebnis: /usr/lib/systemd/system/default.target Wenn ich mir das nun im Detail anschaue: ls -la /usr/lib/systemd/system/default.target lrwxrwxrwx 1 root root 16 Jun 27 20:28 /usr/lib/systemd/system/default.target -> graphical.target stelle ich fest: Jo, das ist ein Symlink zum "graphical.target". -> Mein default runlevel entspricht also "5". Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.