红联Linux门户
Linux帮助

ubuntu系统添加upstart脚本

发布时间:2016-07-13 15:01:04来源:linux网站作者:topmyself
该文章只是对upstart配置的简单介绍,目前不做深入介绍,如果看不懂配置,则需要看一下原始文档链接:http://upstart.ubuntu.com/cookbook/​
 
1.upstart是能够对进程进行监控,当服务器重启或者进程异常时,能够对进程重新启动,保证服务的持续不间断。那么有两点需要注意:
(1)服务器启动时,从哪里可以调用到服务进程。 
(2)进程异常退出导致业务冲断时,又如何保证upstart能够将业务进程再次启动。
对于(1),需要理解的是,当服务器系统启动时,init会启动相关进程(至于怎么调用,如何调用,不做介绍)。在/etc/init/目录下面,存放着各种各样的.conf文件,这些文件就是需要启动的服务进程的文件。系统会按照这些文件的内容,执行相应的内容。
比如我需要启动datahub的进程。那么可以编写datahub.conf文件,放在/etc/init目录下,内容如下:
description "datahub"​
start on runlevel [2345]
stop on runlevel [!2345]
script
exec /usr/bin/datahub
end script
那么当系统启动时,就会执行exec /usr/bin/datahub进程,让进程自动运行。
 
对于(2)那么怎么样能够感知datahub进程异常退出呢?upstart是一个基于事件的对服务进程进行启动,停止,以及监控的服务。upstart允许用户自定义事件,但是它本身也包含一系列特殊的事件,比如:
starting, started, stopping, stopped
顾名思义,starting是指进程正准备运行时,upstart产生的事件,而stopped是服务进程停止时,产生的事件。那么如果upstart提供了事件,我们只要添加响应函数,就能够感知进程异常退出,从而重新启动。
post-stop script
exec /usr/bin/datahub
end script
post-stop是进程在stopping之后的状态,那么当进程停止走到这一步,我们感知到post-stop状态,只要重新运行exec执行程序,那么就能够让datahub继续运行了。
 
当然,这种用法官方可是不鼓励的,这里只是大概讲解一下​upstart怎么感知程序退出。
官方采用respawn来控制程序重启。只要在.conf文件里面加入respawn​,那么当程序异常退出时,就会重新再次运行,比感知post-stop可简单多了。
respawn有一个limit限制,默认情况下,某一段时间不能重启超过多少次。
 
还有另外一个限制,当服务进程正常退出时,respawn可是不会帮你重启的哦!
 
本文永久更新地址:http://www.linuxdiyf.com/linux/22340.html