Документация Debian не является явной, init(8)
предупреждает только, что зарезервированы уровни запуска S, 0,1,6, а также:
В системе Debian ввод уровня запуска 1 приводит к уничтожению всех процессов, кроме потоков ядра и сценария, который выполняет уничтожение и другие процессы в своем сеансе. Как следствие этого, небезопасно возвращаться с уровня выполнения 1 на многопользовательский уровень выполнения: демоны, которые были запущены на уровне выполнения S и необходимы для нормальной работы, больше не работают. Система должна быть перезагружена.
Запустите уровень 1 в /etc/inittab
:
l1:1:wait:/etc/init.d/rc 1
/etc/init.d/rc 1
будет вызывать в /etc/rc1.d/S*
том числе, S01killprocs
который убивает большинство вещей, которые он может найти, и S21single
, который выполняет " exec init -t1 S
", чтобы переключиться в однопользовательский режим, поэтому уровень запуска 1 очень недолговечен. Однопользовательский режим «S» в /etc/inittab
том:
~~:S:wait:/sbin/sulogin
Это означает, что init
он просто будет ждать, пока не дождется sulogin
возвращения, прежде чем делать что-либо еще.
Короче говоря, уровни запуска «1» и «S» являются «невмешательством» в Debian (и, вероятно, в большинстве других unixen).
Если вы поместите вашу запись inittab над системной записью «S», то init
респаун и S01killprocs
сценарий некоторое время будут бороться с этим (вы можете не заметить этого без запущенного системного журнала), что, вероятно, довольно быстро, и, вероятно, не делай что хочешь.
Вы можете получить что-то из того, что вам нужно, путем изменения сценариев запуска или выполнения обоих этих действий, а также реализации /etc/initscipt
для мониторинга и регистрации различных действий init
. Это действительно хороший способ подключить рабочую систему, поэтому я советую сначала поэкспериментировать с виртуальной машиной ;-).
Я думаю, что другие ваши варианты, ни один из которых не кажется очень привлекательным, это попробовать другой init
, или посмотреть, можете ли вы сделать то, что вы хотите через поток ядра.