A documentação Debian não é explícita, init(8)
adverte apenas que os runlevels S, 0,1,6 são reservados, e também:
On a Debian system, entering runlevel 1 causes all processes to be killed except for kernel threads and the script that does the killing and other processes in its session. As a consequence of this, it isn’t safe to return from runlevel 1 to a multi-user runlevel: daemons that were started in runlevel S and are needed for normal operation are no longer running. The system should be rebooted.
O nível de execução 1 em /etc/inittab
é:
l1:1:wait:/etc/init.d/rc 1
/etc/init.d/rc 1
chamará /etc/rc1.d/S*
, incluindo S01killprocs
, que mata a maioria das coisas que pode encontrar e S21single
, que executa " exec init -t1 S
", para alternar para o modo de usuário único, portanto, o nível de execução 1 é muito curto -vivia. O modo de usuário único "S" em /etc/inittab
é:
~~:S:wait:/sbin/sulogin
, o que significa que init
simplesmente aguardará até que sulogin
retorne antes de fazer qualquer outra coisa.
Em suma, os runlevels "1" e "S" são "hands-off" no Debian (e provavelmente a maioria dos outros unixen também).
Se você colocar sua entrada inittab acima da entrada do sistema "S", init
respawning e S01killprocs
irão lutar por um tempo (você pode não conseguir observar isso sem um syslog em execução), o que provavelmente é atrevido e provavelmente não fará o que você quer.
Você pode conseguir alguns dos recursos necessários, modificando os scripts de inicialização e implementando um /etc/initscipt
para monitorar e registrar as várias ações de init
. Estas são uma boa maneira de mangueira de um sistema de trabalho, então eu sugiro experimentar em uma vm primeiro;).
Eu acho que suas outras opções, nenhuma das quais parece muito atraente, são tentar um% diferente init
, ou ver se você pode fazer o que você quer através de um thread do kernel.