82c3e2aa50
no longer emits specific events for those. Instead it emits a "runlevel" event. The "runlevel" task starts the "shutdown" task to perform the desired action. * Upstart 0.6 no longer has a "shutdown" event, so "stop on shutdown" no longer works. Therefore the shutdown task explicitly stops all running Upstart jobs, before sending a TERM/KILL signal to all remaining processes. * Do a "chvt 1" at the start of the shutdown task to switch to the console. * Use /dev/console instead of /dev/tty1, since if somebody is logged in on tty1, bad things will happen. svn path=/nixos/branches/upstart-0.6/; revision=18224
26 lines
467 B
Nix
26 lines
467 B
Nix
{ config, pkgs, ... }:
|
|
|
|
with pkgs.lib;
|
|
|
|
{
|
|
|
|
jobs.runlevel =
|
|
{ name = "runlevel";
|
|
|
|
startOn = "runlevel [0123456S]";
|
|
|
|
task = true;
|
|
|
|
script =
|
|
''
|
|
case "$RUNLEVEL" in
|
|
0) initctl start shutdown MODE=poweroff;;
|
|
1) initctl start shutdown MODE=maintenance;;
|
|
6) initctl start shutdown MODE=reboot;;
|
|
*) echo "Unsupported runlevel: $RUNLEVEL";;
|
|
esac
|
|
'';
|
|
};
|
|
|
|
}
|