On 22/08/16 16:29, Martin "eto" Misuth wrote:
On Mon, 22 Aug 2016 07:26:12 -0700
Colin Booth <[email protected]> wrote:
My own $0.02 is that s6-svscan -S should ignore power state signals
(including SIGINT which it currently doesn't ignore).
I haven't really understood this thread, but I think I am starting to
understand.
Correct me, if I am wrong, but is this about signals, which generate various
cleanup paths to end normal machine operations aka "curuising" mode?
Because if so, there is problem I hit before, but thought it was PEBKAC on my
part.
Currently on FreeBSD, when s6-svscan runs as PID1, native "reboot" command makes
s6-svscan do proper cleanup (I guess it sends signal which is
correctly interpreted by s6-svscan as shutdown signal). While shutdown does
"nothing". I guess on that box I need to add -S switch and introduce signal
handling scripts?
FreeBSD has a different convention.
SIGHUP: Reload /etc/ttys. Since s6 doesn't start getty etc. from
/etc/ttys there no need to handle this signal. I just log it to the
default logger.
SIGINT: Reboot the system. I implemented it as `s6-rc -a -d change`
followed by `s6-svscanctl -i /run/service`.
SIGQUIT: Not used by FreeBSD init. Just log and otherwise ignore the signal.
SIGUSR1: Halt the system. Use `s6-rc -a -d change` to stop all services
and `s6-svscanctl -st /run/service` to halt.
SIGUSR2: Poweroff the system. Use `s6-rc -a -d change` to stop all
services and `s6-svscanctl -pt /run/service` to power down.
It's also a good idea to kill all remaining processes, update the
/entropy file and sync the disks from the s6-svscan ./finish script.
I can upload my /etc/service and /etc/s6-rc/source if you're interested.