Ich muss herausfinden, welche Art von Skript fsck während des Bootens auf CentOS 7 ausführt?
Ich weiß, dass sich alle Szenarien im Verzeichnis /etc/rc.d befinden.
Aber ich habe keine Ahnung davon Wo befindet sich dieses Skript?
Akzeptierte Antwort:
Ich weiß, dass sich alle Szenarien in /etc/rc.d
befinden Verzeichnis.
Was Sie wissen, ist falsch.
Willkommen bei CentOS 7. Die Welt hat sich verändert. Insbesondere Ihre Basis von Red Hat Enterprise Linux 7 hat sich geändert. Sie verwenden ein systemd-Linux-Betriebssystem. Viele der über Linux verbreiteten Weisheiten gelten für solche Systeme nicht.
fsck
wird von keinem Skript ausgeführt auf systemd Linux-Betriebssystemen.
Das native Format für systemd ist unit , die unter anderem eine Serviceeinheit sein kann oder eine mount unit . Die eigentliche Dienstverwaltung von systemd arbeitet ausschließlich in Bezug auf diejenigen, die sie aus einem von neun Verzeichnissen liest, in denen (systemweit) .service
steht und .mount
Dateien können leben. /etc/systemd/system
, /run/systemd/system
, /usr/local/lib/systemd/system
, und /usr/lib/systemd/system
sind vier dieser Verzeichnisse.
Ihre /etc/fstab
Die Datenbank wird von einem Programm namens systemd-fstab-generator
in Einhängeeinheiten konvertiert . Dieses Programm ist in /usr/lib/systemd/system-generators/
aufgeführt Verzeichnis und wird daher von systemd früh im Bootstrap-Prozess bei jedem Start automatisch ausgeführt, und jedes Mal, wenn systemd später angewiesen wird, seine Konfiguration neu zu laden.
Dieses Programm ist ein Generator , eine Art Hilfsdienstprogramm, dessen Aufgabe es ist, Unit-Dateien im Handumdrehen zu erstellen, in einem tmpfs, in dem sich drei weitere dieser neun Verzeichnisse (die nur von Generatoren verwendet werden sollen) befinden. systemd-fstab-generator
erzeugt .mount
Einheiten, die die Volumes mounten. Diese wiederum verweisen auf .service
Einheiten, die fsck
ausführen .
Diese fsck
Diensteinheiten selbst existieren nicht als Dateien im Dateisystem (nicht einmal in einem tmpfs) und sind nicht die Produkte eines Generators. Sie werden instanziiert von systemd aus einer Vorlage Diensteinheitendatei mit dem Namen [email protected]
, wobei der Gerätename als Instanzname der Diensteinheit verwendet wird. Die Instanziierung erfolgt aufgrund von Requires=
und After=
Verweise auf [email protected]device.service
aus der generierten .mount
Einheiten.
Diese instanziierte Vorlage ist ein Dienst, der ein Programm namens systemd-fsck
ausführt , das eine Client-Server-Verbindung zum Anzeigen von Fortschrittsinformationen aufbaut und dann seinerseits fsck
ausführt . systemd-fsck
ist ein kompiliertes C-Programm, kein interpretiertes Skript.
Weiterführende Literatur
- „Neue Funktionen:System und Dienste“. Red Hat Enterprise Linux 7 Versionshinweise . Red Hat.
- Stephen Wadeley (2014). „8. Verwalten von Diensten mit systemd“ Red Hat Enterprise Linux 7 Handbuch für Systemadministratoren . Red Hat.
- systemd-fstab-generator . systemd Handbuchseiten. Freedesktop.org.
- [E-Mail-geschützt] . systemd Handbuchseiten. Freedesktop.org.
- systemd.mount . systemd Handbuchseiten. Freedesktop.org.
- https://unix.stackexchange.com/a/204075/5132
- https://unix.stackexchange.com/a/196014/5132