Index: sys/kern/kern_shutdown.c =================================================================== --- sys/kern/kern_shutdown.c +++ sys/kern/kern_shutdown.c @@ -134,6 +134,14 @@ SYSCTL_INT(_kern, OID_AUTO, sync_on_panic, CTLFLAG_RWTUN, &sync_on_panic, 0, "Do a sync before rebooting from a panic"); +static int poweroff_on_panic = 0; +SYSCTL_INT(_kern, OID_AUTO, poweroff_on_panic, CTLFLAG_RWTUN, + &poweroff_on_panic, 0, "Do a power off instead of a reboot on a panic"); + +static int powercycle_on_panic = 0; +SYSCTL_INT(_kern, OID_AUTO, powercycle_on_panic, CTLFLAG_RWTUN, + &powercycle_on_panic, 0, "Do a power cycle instead of a reboot on a panic"); + static SYSCTL_NODE(_kern, OID_AUTO, shutdown, CTLFLAG_RW, 0, "Shutdown environment"); @@ -797,6 +805,10 @@ /* thread_unlock(td); */ if (!sync_on_panic) bootopt |= RB_NOSYNC; + if (poweroff_on_panic) + bootopt |= RB_POWEROFF; + if (powercycle_on_panic) + bootopt |= RB_POWERCYCLE; kern_reboot(bootopt); }