HowToRunLightyWithRunit » History » Revision 2
Revision 1 (Anonymous, 2006-12-22 11:06) → Revision 2/8 (Anonymous, 2006-12-22 11:19)
= Lighty + Runit --> (almost) uninterruptible service :) = I had some problem with lighty's stability in the past so I ended up using a simple supervisor written in shell. I didn't need it much for a long time now, bu I thought runit would be a more elegant and robust solution than a shellscript + cron. So here is how I got it working on Debian SID for a quick test: 1. Install the wanted components {{{ wajig install lighttpd wajig install runit }}} This takes care of the basic config of both sw. 2. Creating the service directories and service scripts {{{ # mkdir -p /etc/sv/lighttpd/log/ # cat <<EOF >/etc/sv/lighttpd/run #!/bin/bash exec lighttpd -D -f /etc/lighttpd/lighttpd.conf 2>&1 EOF # # cat <<EOF >/etc/sv/lighttpd/log/run #!/bin/bash exec chpst -u nobody svlogd -tt /var/log/SV/ EOF # # chmod +x /etc/sv/lighttpd/run /etc/sv/lighttpd/log/run }}} 3. Setting up the log dir {{{ # mkdir -p /var/log/SV # chown nobody /var/log/SV }}} 4. Notifying runit about the new service and removing it from init's control {{{ # ln -s /etc/sv/lighttpd/ /var/service/ # update-rc.d -f lighttpd remove Removing any system startup links for /etc/init.d/lighttpd ... /etc/rc0.d/K20lighttpd /etc/rc1.d/K20lighttpd /etc/rc2.d/S20lighttpd /etc/rc3.d/S20lighttpd /etc/rc4.d/S20lighttpd /etc/rc5.d/S20lighttpd /etc/rc6.d/K20lighttpd }}} 5. Checking status {{{ # sv status lighttpd run: lighttpd: (pid 4979) 19s; run: log: (pid 4606) 18s # }}} '''Notes''': Logging will be ok for a single service this way but may be problematic if you have several processes logging to the same directory. I haven't tried it so I wouldn't know :) It would have been nice to make it log the problems of lighty's startup over syslog but I couldn't get it working. The line below should have taken care of it but it didn't work as expected for me. YMMV. {{{ echo "U127.0.0.1" > /var/log/SV/config }}}