本例OS:Red Hat Enterprise Linux Server release 6.5 (Santiago)node
系统必须安装gcc和makespa
# yum install gcccode
而后是下载并安装daemontools进程
# wget --no-check-certificate http://cr.yp.to/daemontools/daemontools-0.76.tar.gzci
# tar zxf daemontools-0.76.tar.gzget
# cd admin/daemontools-0.76/it
# sed -i 's/extern int errno;/#include /1' ./src/error.hio
# ./package/installtable
设置开机自动执行svscanboot命令cli
添加“csh -cf '/command/svscanboot &'”到/etc/rc.local文件中
# sed -i "/csh -cf \x27\/command\/svscanboot \&\x27/d" /etc/rc.local
# echo "csh -cf '/command/svscanboot &'" >> /etc/rc.local
执行svscanboot命令
# sh /etc/rc.local
# ps -ef|grep svscanboot
root 20561 1 0 14:49 pts/1 00:00:00 /bin/sh /command/svscanboot
root 20593 7655 0 14:50 pts/1 00:00:00 grep svscanboot
至此,daemontools已经配置完成。
整体步骤:
1) 建立一个目录(目录名随便起,例如httpd,kibana),目录下放一个脚本文件run(必须叫run的文件名,不然daemontools不认识);
2) run脚本文件中添加启动服务的命令,run具备可执行权限1755;
3) 建立的目录能够放到/service中(推荐),也能够作软链接到/service中。
执行过程,管理kibana进程:
# mkdir /service/kibana
# vi /service/kibana/run
#!/bin/sh /opt/kibana/bin/kibana -c /opt/kibana/config/kibana.yml & |
# chmod 1755 /service/kibana/run
成功的将kibana进程管理起来,一旦发现进程挂掉自动从新启动。
# ps -ef|grep node
root 20564 20561 0 14:49 pts/1 00:00:00 readproctitle service errors: ... (node.js:395:17)","code":"EADDRINUSE"}}?FATAL { [Error: listen EADDRINUSE 127.0.0.1:5601]? cause: ? { [Error: listen EADDRINUSE 127.0.0.1:5601]? code: 'EADDRINUSE',? errno: 'EADDRINUSE',? syscall: 'listen',? address: '127.0.0.1',? port: 5601 },? isOperational: true,? code: 'EADDRINUSE',? errno: 'EADDRINUSE',? syscall: 'listen',? address: '127.0.0.1',? port: 5601 }?
root 28168 1 1 15:13 pts/1 00:00:02 /opt/kibana/bin/../node/bin/node /opt/kibana/bin/../src/cli -c /opt/kibana/config/kibana.yml
root 31543 1 30 15:16 pts/1 00:00:00 /opt/kibana/bin/../node/bin/node /opt/kibana/bin/../src/cli -c /opt/kibana/config/kibana.yml