Are you sure that it's Upstart that wipes the nologin file? In Ubuntu, at least, the nologin file is created by the /etc/rcS.d/S80bootmisc.sh script and then removed by /etc/rc[2-5].d/S99rmnlogin
Removal can be prevented by setting DELAYLOGIN=no in /etc/default/rcS
If this is not what you mean, could you explain why (and where in the code) you think Upstart is removing /etc/nologin
Are you sure that it's Upstart that wipes the nologin file? In Ubuntu, at least, the nologin file is created by the /etc/rcS. d/S80bootmisc. sh script and then removed by /etc/rc[ 2-5].d/ S99rmnlogin
Removal can be prevented by setting DELAYLOGIN=no in /etc/default/rcS
If this is not what you mean, could you explain why (and where in the code) you think Upstart is removing /etc/nologin