For service supervision with runit: (1) add scripts into /etc/sv//run ------------------------------ Example: /etc/sv/nginx/run | ------------------------------ #!/bin/sh mkdir -p /tmp/nginx exec /usr/sbin/nginx ------------------------------ Example: /etc/sv/ssh/run | ------------------------------ #!/bin/sh set -e ssh-keygen -A exec /usr/sbin/sshd -D ------------------------------ Example: /etc/sv/mysqld/run | ------------------------------ #!/bin/sh libs=/var/lib/mysql socket=/run/mysqld mkdir -p $socket chown mysql:mysql $socket chown -R mysql:mysql $libs exec chpst -u mysql:mysql mysqld --user=mysql 2>&1 -------------------------------------------------- Example: /etc/sv/pgsql/run | -------------------------------------------------- #!/bin/sh . /etc/conf.d/postgresql chown -R postgres:postgres ${PGDATA} exec setuidgid postgres /usr/bin/postgres -D ${PGDATA} -o "$PGOPTS" 2>&1 --------------------------------------------------------------------------------- Example: /etc/sv/tinyssh/run | --------------------------------------------------------------------------------- #!/bin/sh PORT=22 mkdir -p /etc/tinyssh /usr/sbin/tinysshd-makekey /etc/tinyssh/sshkeys 2>/dev/null exec tcpserver -HRDl0 0.0.0.0 $PORT /usr/sbin/tinysshd -v -l /etc/tinyssh/sshkeys --------------------------------------------------------------------------------- (2) set permissions: chmod 700 /etc/sv//run (3) symlink the script directory to the service directory: ln -s /etc/sv/nginx /etc/service/nginx ========================================================== The socklog package by the same author can provide logging with built in log rotation & also be managed by runit.