本例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