Project

General

Profile

LighttpdUnderSupervise » History » Revision 10

Revision 9 (zikzik, 2007-01-16 01:03) → Revision 10/11 (stbuehler, 2009-03-28 14:32)

h1. Running Lighttpd under daemontools/supervise 

 


 Lighttpd is well suited to run monitored by the "supervise" program from Daniel J. Bernstein's "daemontools":http://cr.yp.to/daemontools.html package. 

 To set it up, you must first create a standard service directory structure. In the following example the service directory from where the process starts will be /srv/lighttpd-main/. It consists of the following directory and files: 

 

 <pre> 
 

 /srv/lighttpd-main/             # the service directory 
 /srv/lighttpd-main/run          # the script that starts lighttpd 
 /srv/lighttpd-main/root/        # lighttpd configuration files go here 
 /srv/lighttpd-main/log/         # the service directory for the logger 
 /srv/lighttpd-main/log/run      # the script that starts the logger 
 /srv/lighttpd-main/log/main/    # log files go here 
 </pre> 

 


 If you're using "Gentoo":http://gentoo.org, use /var/services instead of /srv 

 Note: the "./root/" directory is optional and could be called anything, and we use it here simply to have somewhere to put the configuration file_s_ (we chop up the configuration into several files and use the _include_ statement). 

 


 h2. File ./run 

 


 <pre> 

 #!sh 
 #! /bin/sh 

 exec 2>&1 
 exec lighttpd -D -f ./root/lighttpd.conf 
 </pre> 

 



 h2. File ./root/lighttpd.conf 

 


 Apart from your specific settings you probably want to include the following definitions:  
  

 <pre> 
 

 server.pid-file = "./root/lighttpd.pid" 
 #server.errorlog must be NOT be set 
 </pre> 

 



 h2. File ./log/run 

 


 <pre> 

 #!sh 
 #! /bin/sh 

 umask 0027 
 exec setuidgid nobody multilog ./main 
 </pre> 

 



 h2. Directory ./log/main/ 

 

 The user that is specified to run multilog (_nobody_ in the above example) must have write access to this directory: 
 

 <pre> 

 #!ShellExample 
 # chown nobody ./log/main/ 
 </pre> 

 


 ---- 

 After the configuration file is in place, just place a symlink into the svscan service directory (/service in DJB's examples): 

 


 <pre> 

 #!ShellExample 
 # ln -s /srv/lighttpd-main /service/ 
 </pre> 

 


 (Please visit "Wayne Marshalls overview":http://thedjbway.org/daemontools.html in case you're lost at this point). 

 That's all you need to get started.  

 See also [[LighttpdUnderSuperviseExampleConfiguration]]. 

 LighttpdUnderSuperviseExampleConfiguration. 


 h2. Runit 

 


 See also [[HowToRunLightyWithRunit]] HowToRunLightyWithRunit 
 (for graceful restart wrapper)