Die Debian-Dokumentation ist nicht explizit, init(8)
warnt jedoch nur, dass Runlevel S, 0,1,6 reserviert sind, und außerdem:
Auf einem Debian-System führt die Eingabe von Runlevel 1 dazu, dass alle Prozesse außer Kernel-Threads und das Skript, das den Kill und andere Prozesse in seiner Sitzung ausführt, beendet werden. Daher ist es nicht sicher, vom Runlevel 1 zum Runlevel für mehrere Benutzer zurückzukehren: Daemons, die im Runlevel S gestartet wurden und für den normalen Betrieb benötigt werden, laufen nicht mehr. Das System sollte neu gestartet werden.
Run Level 1 in /etc/inittab
ist:
l1:1:wait:/etc/init.d/rc 1
/etc/init.d/rc 1
ruft auf, /etc/rc1.d/S*
einschließlich der, S01killprocs
die die meisten Dinge töten, die es finden kann, und S21single
"welche exec init -t1 S
" führt, um in den Einzelbenutzermodus zu wechseln. Einzelbenutzermodus "S" in /etc/inittab
ist:
~~:S:wait:/sbin/sulogin
Das bedeutet, dass Sie init
einfach warten müssen, bis Sie sulogin
zurückkehren, bevor Sie irgendetwas anderes tun.
Kurz gesagt, die Runlevels "1" und "S" sind in Debian "hands-off" (und wahrscheinlich auch die meisten anderen Unixen).
Wenn Sie Ihren inittab-Eintrag über den Eintrag "S" des Systems stellen, wird das init
Respawning und das S01killprocs
Skript eine Zeit lang dagegen ankämpfen (Sie können dies möglicherweise nicht ohne laufendes syslog feststellen), was wahrscheinlich rassig ist und wahrscheinlich auch nicht Tun Sie, was Sie wollen.
Sie können auf einige der Lage sein, was Sie die Startskripts modifizieren durch eine oder beide benötigen, und eine Umsetzung /etc/initscipt
der verschiedenen Aktionen zu überwachen und zu protokollieren init
. Dies ist eine wirklich gute Methode, um ein funktionierendes System zu verschließen. Ich empfehle daher, zuerst in einer virtuellen Maschine zu experimentieren ;-).
Ich denke, Ihre anderen Optionen, von denen keine sehr ansprechend erscheint, bestehen darin, eine andere auszuprobieren init
oder zu sehen, ob Sie über einen Kernel-Thread tun können, was Sie wollen.