Ein anderer typischer Weg, um etwas beim Booten auf vielen * nix- Plattformen zu starten, ist (oder war, glaube ich, dass dies allmählich an Beliebtheit verliert - siehe Alternativen ), Skripte in ein Verzeichnis zu legen, das je nach Betriebssystem / Distribution möglicherweise ist so etwas wie /etc/rc2.d
, /etc/rc3.d
, /etc/rc/rc3.d
oder dergleichen (verschiedene Distributionen verwenden unterschiedlichen „Runlevels“, das ist , wo die Zahl herkommt - siehe Link unten). Häufig werden diese auch in oder aus Dateien verlinkt /etc/init.d
, um die Ausführung von Hand zu vereinfachen. Auf den meisten * nix-Plattformen wird ein "Start" - und / oder "Stopp" -Argument verwendet. Außerdem werden "Status", "Neustart", usw. auf vielen Linux-Plattformen. Auf solchen Systemen werden diese im Allgemeinen ausgeführt von init
:inittab
. Auf * BSD-Systemen gibt es einen anderen Stil eines ähnlichen Konzepts und, wie oben erwähnt, eine Reihe von Variationen.
Im obigen Stil beginnen Skripte in z. B. /etc/rc2.d
(für ein System mit einem Standard-Runlevel von 2) normalerweise entweder mit dem Buchstaben S
oder K
und dann mit einer zweistelligen Zahl. Die Skripte, die mit S beginnen, werden in lexikografischer Reihenfolge (die im Allgemeinen in numerische Reihenfolge übersetzt wird) ausgeführt, wenn Sie in Ebene 2 mit dem Argument "start" starten. Beim Herunterfahren werden die Skripte mit dem Präfix K auf ähnliche Weise mit dem Argument "stop" ausgeführt.
Die Dateien in /etc/init.d
(oder manchmal /etc/rc/init.d
oder in anderen Variationen) werden ohne die S- und K-Präfixe oder die numerischen Nummern benannt. In der Regel sind die Dateien in den verschiedenen Verzeichnissen /etc/rc?.d mit den tatsächlichen Dateien verknüpft, auf die häufig über das relative Pfadpräfix verwiesen wird ../init.d/
.
Auf verschiedenen Systemen gibt es verschiedene Dienstprogramme, um diese zu verwalten, Dinge ein- und auszuschalten usw. Unter IRIX (seit IRIX 4, zumindest wenn mein Speicher belegt ist) war es ein aufgerufenes Tool chkconfig
, das nicht manipuliert werden konnte die Links, die aber von den Skripten überprüft würden, ob sie laufen sollen oder nicht. Ich denke, IRIX war das erste Betriebssystem, das so etwas hatte. Später gab es in einer Version von RedHat, die ich früher hatte, ein Tool mit demselben Namen, das sich jedoch ein wenig anders verhielt und die Symlinks tatsächlich verwaltet - siehe, chkconfig(8)
was ich für die gleiche (oder sehr ähnliche) Version halte wie ich es damals benutzt habe.
Auf einem Ubuntu 9.04-System, auf das ich Zugriff habe, muss anscheinend update-rc.d
das Skript ausgeführt werden.
Wenn Sie sich auf einem System befinden, das inittab verwendet, können Sie Dinge auch direkt dort hinzufügen. Dies ist besonders nützlich für Dinge, die Sie nicht nur einmal beim Booten ausführen möchten, sondern die Sie aktiv (von init
) überwachen lassen möchten , respawn
falls dies jemals der Fall ist abstürzen oder beenden. man inittab
Weitere Informationen finden Sie in der Ausgabe von (falls vorhanden) auf Ihrem System. Und / oder man init
, etc. Es gibt viele verschiedene Geschmacksrichtungen, und ich kenne Debian oder Ubuntu (derzeit) nicht besonders gut, daher weiß ich nicht genau, worauf ich Sie hinweisen soll, aber hoffentlich gibt Ihnen dies einige Ansatzpunkte .
Der Abschnitt @reboot in crontob ist für mich neu, scheint aber auch eine nützliche Option zu sein - obwohl ich für viele Dinge Init-Skripte als vorzuziehen empfehle. Aber sehen Sie man 5 crontab
für viel mehr Informationen darüber , was Sie in Ihre Cron - Konfiguration setzen kann, und wie kann es gesagt werden , Dinge zu laufen, und wenn (einschließlich einer Vixie / ISC - Version von cron unter der Annahme [siehe cron Geschichte ] mit @reboot
).
Ich hoffe das ist hilfreich.