Sie testen, in welchen Runlevel Ihre Maschine normalerweise startet.
runlevel
Oft ist dies 5 oder 2 - es gibt verschiedene Konventionen, aber nichts wirklich Etabliertes, afaik. Ubuntu verwendet 2, während die frühere Distribution, die ich verwendet habe, immer verwendet wurde
- 1 Single User (Super User)
- 2 Mehrbenutzer
- 3 Mehrbenutzer + Netzwerk
- 4 nicht verwendet / benutzerdefinierbar
- 5 Mehrbenutzer, Netzwerk + X11
Dann machst du einen Symlink von deinem Init-Skript, vielleicht /etc/init.d/foobar
zu/etc/rc2.d/SXYfoobar
S bedeutet 'Starte dieses Skript in diesem Runlevel (hier: 2). XY ist eine zweistellige Dezimalzahl, die für die Reihenfolge relevant ist, in der die Skripte gestartet werden.
Wenn Sie sich darauf verlassen müssen, dass das Skript S45barfoo vor Ihnen ausgeführt wird, und S55foofoo von Ihrem Skript abhängt, wählen Sie xy zwischen 45 und 55. Bei gleichen Zahlen ist die Startreihenfolge undefiniert.
Ubuntu hat mittlerweile auf eine andere Startprozedur umgeschaltet, genannt upstart
.
Und beachten Sie: Nicht immer verlinken die Links auf /etc/rcX.d
- manchmal ist es /etc/init/rcX.d
oder ähnliches, aber es sollte leicht zu finden sein, irgendwo unter / etc.
Wenn Sie etwas am Ende des Startskripts starten möchten, müssen Sie nach /etc/rc.local
einer Datei suchen. Wenn dies jedoch davon abhängt, dass X11 bereits ausgeführt wird, suchen Sie möglicherweise nach einer Autostart-Option für Ihre Desktop-Umgebung oder /etc/X11/Xsession.d/
nach einem ähnlichen Muster wie beschrieben über.
Wenn Sie davon abhängig sind, dass das Netzwerk aktiv ist, gibt es ein separates Verzeichnis (if-up.d) und für gemountete Geräte wie externe USB-Laufwerke /etc/udev/rules.d/
.
/etc/init
,/etc/init.d
,/etc/rc.d
,/etc/rc.local
und ein paar mehr hat es?