Debian documentation isn't explicit,
init(8) cautions only that runlevels S,0,1,6 are reserved, and also:
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.
Run level 1 in
/etc/init.d/rc 1 will call
S01killprocs which kills most things it can find, and
S21single, which performs "
exec init -t1 S", to switch to single-user mode, so runlevel 1 is very short-lived. Single-user mode "S" in
which means that
init will simply wait until wait until
sulogin returns before doing anything else.
In short, runlevels "1" and "S" are "hands-off" in Debian (and probably most other unixen too).
If you put your inittab entry above the system "S" entry, then
init respawning and the
S01killprocs script will fight it out for a while (you may not get to observe that without a running syslog), which is probably racy, and probably won't do what you want.
You may be able to some of what you need by either or both of modifying the startup scripts, and implementing an
/etc/initscipt to monitor and log the various actions of
init. These are a really good way to hose a working system, so I suggest experimenting in a vm first ;-).
I think your other options, neither of which seem very appealing, are to try a different
init, or see if you can do what you want via a kernel thread.