Entspricht das /etc/init.d
Verzeichnis von ubuntu genau dem, was ich für den Standard halte /etc/rc.d/
(zumindest für arch)? Gibt es einen bestimmten Grund, warum canonical init.d anstelle von rc.d für Startskripte verwendet?
Entspricht das /etc/init.d
Verzeichnis von ubuntu genau dem, was ich für den Standard halte /etc/rc.d/
(zumindest für arch)? Gibt es einen bestimmten Grund, warum canonical init.d anstelle von rc.d für Startskripte verwendet?
Antworten:
Ubuntu verwendet /etc/init.d
SysVinit-Skripte zum Speichern, da Ubuntu auf Debian basiert und genau das verwendet Debian. Red Hat verwendet /etc/rc.d/init.d
. Ich vergesse was Slackware benutzt. Es gibt einfach keinen Standardstandort.
Ubuntu wechselt gerade von SysVinit zu Upstart , das Konfigurationsdateien in verwendet /etc/init
.
/etc/init.d
. Der Übergang zu einem /etc/init/*.conf
späteren Zeitpunkt begann (8.04 war immer noch im SysV-Stil, 10.04 war bereits im Übergang).
/etc/init.d war der alte historische Speicherort für SVR4. Ich habe vergessen, warum redhat die Ebene /etc/rc.d/ hinzugefügt hat. Ich denke, Dinge auf rc.d zu isolieren, musste dann aber trotzdem eine Reihe von Symlinks hinzufügen, um die Abwärtskompatibilität zu gewährleisten. Es gibt also /etc/init.d in redhat, nur symbolisiert es woanders.
Daher ist der Standardspeicherort /etc/init.d, obwohl es sich möglicherweise um einen Symlink und nicht um ein echtes Verzeichnis handelt.
Es gab einige wirklich alte Linux-Distributionen, die BSD mit /etc/rc.local kopierten, aber so gut wie niemand benutzt das mehr.
Historisch gesehen bezeichnet der /etc/rc.d
Verzeichnisbaum ein Init-System, das der 4.4 BSD-Tradition der Systeminitialisierung folgt, die üblicherweise als rc
Init-System bezeichnet wird. All das moderne (Free / Open / Net) BSD-System und Slackware Linux folgen dieser Tradition.
Der /etc/init.d
Verzeichnisbaum bezeichnet das System V (SysV) -Initialisierungssystem, das der Tradition der Systeminitialisierung von AT & T UNIX, SunOS und Solaris folgt. Dies wird allgemein als SysV Init-System bezeichnet. Das eigentliche Debian folgt immer noch dieser Tradition in der Wheezy-Reihe, plant aber, SystemD in der Jessie-Reihe zu verwenden. In der Vergangenheit haben RedHat und Derivate SysV Init verwendet, aber nicht mehr.
Außerdem wurden im Laufe der Zeit Funktionen beider Init-Schemata von Distributionen übernommen.
Eigentlich ist zumindest in CentOS 6.8 Santiago /etc/init.d
nur ein Softlink zu /etc/rc.d
.
PuppyLinux hat sowohl /etc/rc.d als auch /etc/init.d und ist auch kein Symlink. Was ein Symlink ist , ist /etc/rc.d/init.d , das eine Ebene mit /etc/init.d verknüpft (ich schaue auf einen Slackware-basierten Puppy - es gibt auch Ubuntu-basierte und andere Varianten) .) In jeder Datei ist eine README.txt enthalten, in der die Vorgehensweise erläutert wird.
Ok, /etc/init.d
hier können Sie schnell ein Init-Skript bereitstellen. Der zweite Schritt zur Aktivierung dieses Skripts besteht darin, einen chkconfig
Befehl darauf auszuführen . Angenommen, Sie führen chkconfig --add <yourscript>
, werden symbolische Links zwischen /etc/init.d/<yourscript>
und erstellt/etc/rc.d/rcX.d/S50<script>
beispielsweise. X in rcX.d steht für die Runlevel-Nummer des Skripts, und S50 steht für den Skripttyp (es gibt zwei dieser Typen, S & K, S weist das System an, das Skript beim Start zu starten, und K weist das System an, das Skript zu starten Beenden Sie das Skript ordnungsgemäß, wenn Sie es herunterfahren. Die Zahl nach S / K gibt die Reihenfolge an, in der dies geschieht, falls Sie einige Skripte haben, die davon abhängen, dass andere zuerst aktiv sind. Wenn im Skript kein Runlevel angegeben ist oder wenn Sie den Befehl runlevel eingeben, erstellt CentOS6 standardmäßig S50-Skripte für Runlevel 2,3,4,5 und K50 für Runlevel 0,1,6.
/etc/rc.d
ich gesehen habe ... Ich vermute, dass sie in BSD verwendet werden könnte.