First we started with the documented approach of appending to /etc/ttys "" "/usr/local/bin/s6-svscan /run/scan" "" on
Which worked nicely under FreeBSD's /sbin/init. Then we added to loader.conf an init_script which is invoked via /sbin/init. This also worked well, but init remained as pid 1. The init_script variable is defined in /boot/loader.conf, in my case as: init_script="/root/bin/init_script.sh /sbin/init calls "init_script" This ran nicely, but still under init as pid=1. Finally I sucked up the courage and defined in /boot/loader.conf init_exec=/root/bin/init_exec.sh which contains #!/usr/local/bin/execlineb -S0 redirfd -wnb 1 /m/fifo/catch_all redirfd -r - /dev/null fdmove -c 2 1 exec -c /sbin/s6/svscan -t 0 -s /s/scan And finally /sbin/s6-svscan runs as pid 1. I'm very pleased with the result except... after a reboot, I have to fsck -y / because when I shutdown, the system crashes due to pid 1 being killed. At the moment I have /s/scan/.s6-svscan/SIGTERM and /s/scan/.s6-svscan/finish containing #!/usr/local/bin/execlineb -S0 foreground { /bin/sync } foreground { /sbin/mount -ur / } foreground { /sbin/shutdown -o -r now } # this invokes reboot rather than send a signal to init. I'd greatly appreciate advice as to completing a clean shutdown? (FYI for other FreeBSD folk, I hacked the order of calling init_script then init_exec in init.c because the order is incorrect - I'll pursue with the FreeBSD devs. Its only a few lines moved around. I use init_script to prepare the environment for init_exec, though it could all be done within init_exec script.) Regards, Dewayne PS This journey commenced with the simple wish to safely rotate apache logs, now I'm hooked on s6-rc (and the peace of mind it brings)