红联Linux门户
Linux帮助

Linux应用程序以服务方式(Service)运行,并且保证死机能重启

发布时间:2016-06-21 15:34:43来源:linux网站作者:nuvoton

ubuntu 自带了一个daemon 程序, 执行 apt-get install daemon,

然后就被安装到了 /usr/bin/daemon,


下面我们创建一个测试脚本:

#!/bin/bash 
echo $(date)" Starting Script" >> /tmp/output   
while true   
do 
echo $(date) >> /tmp/output 
sleep 5 
done   


运行:

#daemon -r /root/test.sh 


我们发现后台可以启动了两个进程:

[root@terminal40162 ~] ps -ef | grep test 
root     11421     1  0 14:11 ?        00:00:00 daemon -r /root/test.sh   
root     11422 11421  0 14:11 ?        00:00:00 /bin/bash /root/test.sh

Linux应用程序以服务方式(Service)运行,并且保证死机能重启


当执行 kill 11422 之后, /bin/bash /root/test.sh 这个进程又冒出来了。

这就是deamon 在后台监控起的作用。


接着测试服务启动,停止,重启:

service testd start 
service testd stop 
service testd restart 


该服务加入开启启动(UBUNTU貌似无效):

chkconfig --add testd 


检查是否已经设置成功:

[root@lvs01 tmp]# chkconfig --list testd 
testd           0:off   1:off   2:on    3:on    4:on    5:on    6:off 


ubuntu貌似无该命令 chkconfig,  不过不用着急,可以手动添加软链接:

ln  /etc/init.d/testd  /etc/rc0.d/S0test -s 
ln  /etc/init.d/testd  /etc/rc1.d/S0test -s 
ln  /etc/init.d/testd  /etc/rc2.d/S0test -s 
ln  /etc/init.d/testd  /etc/rc3.d/S0test -s 
ln  /etc/init.d/testd  /etc/rc4.d/S0test -s 
ln  /etc/init.d/testd  /etc/rc5.d/S0test -s 
ln  /etc/init.d/testd  /etc/rc6.d/S0test -s 


重启ubuntu, 服务已经启动:

root@dns066:~# service testd status 
daemon:  TEST is running (pid 1106) 

搞定!


本文永久更新地址:http://www.linuxdiyf.com/linux/21722.html