#!/bin/execlineb -S1 foreground { redirfd -w 2 /dev/null mkdir -p /run/uncaught-logs } if { chown catchlog:catchlog /run/uncaught-logs } if { chmod 2700 /run/uncaught-logs } foreground { redirfd -w 2 /dev/null mkdir -p ${1}/.s6-svscan ${1}/s6-svscan-log } foreground { redirfd -w 2 /dev/null ln -sf /bin/false ${1}/.s6-svscan/crash } if { redirfd -w 1 ${1}/.s6-svscan/finish heredoc 0 "#!/bin/execlineb -P\ns6-svc -X -- \"${1}/s6-svscan-log\"\n" cat } if { chmod 0755 ${1}/.s6-svscan/finish } foreground { redirfd -w 2 /dev/null mkfifo -m 0600 ${1}/s6-svscan-log/fifo } if { redirfd -w 1 ${1}/s6-svscan-log/run heredoc 0 "#!/bin/execlineb -P redirfd -w 2 /dev/console redirfd -rnb 0 fifo s6-setuidgid catchlog exec -c s6-log t /run/uncaught-logs\n" cat } if { chmod 0755 ${1}/s6-svscan-log/run } redirfd -r 0 /dev/null redirfd -wnb 1 ${1}/s6-svscan-log/fifo fdmove -c 2 1 s6-svscan -St0 ${1}