linux守护进程的实现,Linux守护进程的实现

守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程。它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。守护进程常常在系统引导装入时启动,在系统关闭时终止。Linux系统有很多守护进程,大多数服务都是通过守护进程实现的,同时,守护进程还能完成许多系统任务,例如,作业规划进程crond、打印进程lqd等(这里的结尾字母d就是Daemon的意思)【以上引用百度百科】。

linux下实现授权进程的方法有很多中,我在这里主要介绍的是在启动的时候使用一些命令让程序成为守护进程的方法。

测试程序(以PHP为例):

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2F3689a3d18c6152db05ccce04c678010f.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

一、使用nohup命令实现

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2F8e7b2dfa8fd90ad362d6f67830d5fb03.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2F8f4ea05133011ff75841e9dfdab0b462.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

以上命令就实现了php成为守护进程,在当前会话结束的时候,程序并不会退出了。

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2Fd4404f97acc71cb9bc6e1d2797493b3f.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

退出终端,在次登录服务器,可以看到此进程的父进程id变成了1。

二、使用setsid命令实现

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2F13dab6d200654c09563c0bb1c563e97f.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

以上是setsid命令的介绍。

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2F25b8f3f03e45d348d32642fc83837bde.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

已经看到daemon.php脱离当前会话成为守护进程。

三、使用start-stop-daemon命令实现

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2F3e76f1025f46327bcedefe08b8cbad9f.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2Fe80096cb5e694af23030a72e1c1f1e83.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2F16b738190837e8f22c2cfa01d8bf6ded.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

启动守护进程:

start-stop-daemon --start --background \

--no-close \

--make-pidfile \

--pidfile "/var/run/php-ssd.pid" \

--exec "/usr/bin/php" \

-- \

"/root/daemon.php" \

>> "/var/log/lbbniu.log" 2>&1

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2Fa22dcfcb8a15653bd4ea1ef6763f4fb5.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

感兴趣的同学可以去搜索相关资料进行深入了解。

四、使用&

?url=http%3A%2F%2Fnbot-pub.ws.126.net%2Ff13cbdbc9584ec96ed92664ae27407f8.jpeg&thumbnail=650x2147483647&quality=80&type=jpg

五、使用disown 或者 screen

这两个命令的使用相对上面的四种方法来说,个人觉得相对复杂,在这里就一一演示,有兴趣的可以参考下面链接进行了解。

推荐参考:

http://blog.csdn.net/white__cat/article/details/36190217

http://www.cnblogs.com/allenblogs/archive/2011/05/19/2051136.html

http://www.ibm.com/developerworks/cn/linux/l-cn-nohup/

赞赏

人赞赏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值