Description of problem: 1) Realize you've booted the wrong kernel 2) press CTRL-ALT-DEL while udev is initializing 3) upstart starts running the halt script immediately, before rc,sysinit is finished, resulting in errors about / not being writable from halt It might be that rc.sysinit and halt are running at the same time (which would be *really* bad), or it might be that rc.sysinit gets killed before its finished and then halt gets started. Either way this is not how it is supposed to work,
... would you prefer that it be ignored until after rc.sysinit? I'm not sure what behavior you want here.
I want it to behave like sysvinit, so do nothing until rc.sysinit is finished, but remember that ctrl-alt-del was pressed and then when rc.sysinit is finished immediately enter runlevel 6 Which I do not want because it was what sysvinit does, but what I want because it seems the sane thing todo.
the way to do this IMHO would be to have the ctrl-alt-delete script simply wait until rc.sysinit was finished. You could do this by watching initctl events.
(In reply to comment #3) > the way to do this IMHO would be to have the ctrl-alt-delete script simply wait > until rc.sysinit was finished. You could do this by watching initctl events. Or even better if possible wait with it todo anything until upstart is idle. Pressing ctrl-alt-del while a reboot / shutdown is already in progress leads to restarting the reboot sequence, while the old one keeps running! (or so it seems, anyways its a mess)
I'm not really sure this is the best behavior - the idea is that when you tell it to shut down, it shuts down... in fact, I'd suspect the most often case would be to interrupt some long-running boot process that is stuck.