lighttpd 在daemontools下自动重启方法

“lighttpd -D -f lighttpd.conf 这个作为 daemontools的 run 配置文件”

参考文档:
http://redmine.lighttpd.net/projects/lighttpd/wiki/LighttpdUnderSupervise

脚本如下:
mkdir -p /srv/lighttpd/log/main/

vi /srv/lighttpd/run

#! /bin/sh

exec 2>&1
exec lighttpd -D -f $PATHTO/lighttpd.conf

vi /srv/lighttpd/log/run

#! /bin/sh
umask 0027
exec setuidgid nobody multilog ./main

chown nobody /srv/lighttpd/log/main

最后
ln -s /srv/lighttpd /service/

等待5秒左右就可以看到 lighttpd 启动了

nginx php 在 daemontools 下运行, 永不当机配置

以下均为Linux 平台配置

1. 首先假设你已经可以使 nginx + php 在 fastcgi 模式下运行 (如果不会,请参考nginx 资料)
2. 安装djb daemontools
脚本如下

mkdir -p /package
chmod 1755 /package/
cd /package/
wget http://cr.yp.to/daemontools/daemontools-0.76.tar.gz
tar xzf daemontools-0.76.tar.gz
wget http://www.qmail.org/moni.csi.hu/pub/glibc-2.3.1/daemontools-0.76.errno.patch
cd admin/daemontools-0.76
patch -p1 < ../../daemontools-0.76.errno.patch
rm ../../daemontools-0.76.errno.patch ../../daemontools-0.76.tar.gz
./package/install

3. 配置 nginx在 daemontools下运行
脚本如下
修改nginx.conf  加入 daemon off; (在 worker_processes 前面!!)
mkdir -p /srv/nginx
vi /srv/nginx/run  内容为
#!/bin/sh
exec /usr/local/nginx/sbin/nginx
4. php fastcgi 在 daemontools 下运行 (最关键的 -n )
#! /bin/sh
exec /usr/local/lighttpd/bin/spawn-fcgi  -n -a 127.0.0.1 -p 9999 -C 30  -u nobody -g nobody  -f /usr/local/php/bin/php-cgi

5. 配置svscan 监控
ln -s /srv/nginx  /service
ln -s /srv/phpfcgi /service

手动停止 你的 nginx  和 php-cgi 进程看看,是不是  php-cgi  和 nginx 自动启动了。呵呵
6. 学习如何手动停止 nginx  和 php-cgi
svc -d /service/nginx  停止 nginx
svc -u /service/nginx  启动 nginx
svc -d /service/phpfcgi 停止phpfcgi
svc -u /service/phpfcgi 启动phpfcgi

That’s all !

补充,php 可以打 fpm补丁后不用此方法