Chinaunix首页 | 论坛 | 博客
  • 博客访问: 357890
  • 博文数量: 90
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 113
  • 用 户 组: 普通用户
  • 注册时间: 2016-01-27 19:56
文章分类

全部博文(90)

文章存档

2017年(12)

2016年(78)

分类: 系统运维

2017-02-08 16:31:37

原文地址:lighttpd 配置reload问题 作者:邝文琳

转载自:架构研究室

lighttpd1.4.x
默认情况下无法使用reload功能,即kill -HUP “PID OF LIGHTTPD” ?
在网上搜索了一番,结果发现可以使用lighttpd的sbin目录下的lighttpd-angel来实现这个reload功能;

方法如下:

/pathtolighttpd/sbin/lighttpd-angel -D -f /pathtolighttpd/conf/lighttpd.conf

-D 表示不在后台执行;(默认是在后台执行的)
而这个reload功能一定是要-D参数才能获得支持;

这样新问题就出现;一般管理服务器都是远程登录的ssh中执行&指令的话会导致退出登录ssh后无响应;
可以通过调整延时时间来设定,但毕竟使用起来有点麻烦;

最后执行在前面增加一个nohup工具,总算问题解决了,但毕竟还不完美;

nohup /pathtolighttpd/sbin/lighttpd-angel -D -f /pathtolighttpd/conf/lighttpd.conf &

然后再修改lighttpd的service脚本如下:


prog=”lighttpd”
lighttpd=”/pathtolighttpd/sbin/lighttpd-angel” #多增加一个lighttpd-angel的变量
lighttpd1=”/pathtolighttpd/sbin/lighttpd”
RETVAL=0

start() {
echo -n $”Starting $prog: ”
#以lighttpd-angel启动,去掉daemon函数,不然会启动失败,无法和nohup一起使用;
/usr/bin/nohup $lighttpd -D -f $LIGHTTPD_CONF_PATH 2 >/dev/null &
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog
return $RETVAL
}

stop() {
echo -n $”Stopping $prog: ”
killproc $lighttpd1 #杀进程的依旧是lighttpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog
return $RETVAL
}

reload() {
echo -n $”Reloading $prog: ”
killproc $lighttpd -HUP
RETVAL=$?
echo
return $RETVAL
}
….

这样修改完发现每次start的时候不能正常显示[OK];lighttpd-angel开启的时候会调用lighttpd主程序;这样就是lighttpd和lighttpd-angel一起运行,这个也是执行reload必须的;

如果有更好的办法,请留言讨论!
貌似lighttpd1.5.x会解决这个问题。

阅读(1963) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~