【转】【Centos】Centos下用upstart管理本身的服务程序

Upstart是Ubuntu用来进行服务进程管理的服务,本文介绍如何利用upstart来经过Centos操做系统管理咱们本身开发的应用程序。javascript

        何时要管理咱们的应用程序?当咱们开发出服务类的应用程序,好比后台服务器程序,须要长时间不间断运行的程序,当咱们须要关闭时一般须要查看一下线程号再kill掉(固然你也能够写一个脚本作这件事),还须要检查程序何时崩溃了及时重启,当部署不少机器时很是麻烦。这时用upstart管理程序,能够用start stop启动、关闭服务,同时能够监控你的服务,再他出现意外退出时从新启动。java

        下面我就开始一步一步开始用upstart管理咱们的程序吧!node

一、安装upstart

用 yum install upstart安装upstartubuntu

二、添加配置文件

安装好upstart后,须要为每个你想要经过upstart管理的程序添加一个配置文件。这些文件放在/etc/init目录下,文件名为你这个服务的名称,后缀名为.conf。如:myServerName.conf。服务器

三、最简单的配置文件内容: 

author "lihanlin"  
description "test"  
  
start on startup  
stop on shutdown  
respawn  
console output  
   
exec /lihanlin/test/testServer  

 

第一行是指定做者,第二行是程序的描述 这两行不起任何做用,只是说明网络

 

第四行的start on是配置发生某些事件时启动程序,这里意思是开机时启动程序。还能够用以下配置,在文件系统跟网络正常时启动程序post

start on filesystem and net-device-up IFACE=lo  

 

第五行的stop on是配置发生某些事件时关闭程序,这里的意思是关机时候关闭程序。学习

第六行respawn是程序意外关闭时自动重启程序。还能够用respawn limit: 命令,设置服务异常中止后重启次数及间隔时间。好比:spa

respawn limit 10 5  

 

第七行console是配置输入输出。你能够改变设置指定工做将信息输出到哪里,从哪里得到输入。console字段你能够指定下列参数之一:output(从 /dev/console得到输入输出);owner(输出和Control-C发送给主进程) ;none(1.4版本以前的默认参数,输入输出指定到/dev/null);log(1.4版本级之后的默认参数,版本太低时没有此参数。将输出写到log文件中,该文件默认放在/var/log/upstart/中,能够经过命令行参数--logdir <directory>设置log文件夹)操作系统

第九行是最关键的,exec参数指定了主程序执行的命令,就是你要监控的程序了。若是不是二进制文件,还能够是以下形式:(例如node程序)

exec /usr/bin/node /lihanlin/server.js  

四、启动关闭程序:

你的服务名字是配置文件(不包括后缀名)名字

启动服务是initctl start myServerName(或者start myServerName)

关闭服务是initctl start myServerName(或者stop myServerName)

查询服务状态是initctl status myServerName(或者stop myServerName)

五、带脚本的配置文件:

假设个人这个/mnt/kvm/test/testServer 服务须要相对路径下的test.so库文件,那么这个时候用上面的配置文件就不能正常的启动服务了,由于相对路径找不到这个库文件。再或者须要作一写脚本处理等等,就须要再执行主程序时运行一下脚本。为了解决这个问题就须要用下面这种配置:

author "lihanlin"  
description "counttest"  
start on filesystem and net-device-up IFACE=lo  
stop on shutdown  
respawn  
console log  
  
script  
    cd /lihanlin/test  
    exec ./testServer  
end script  

 

这里script - end script中间编写了一些脚本,是主运行脚本。进入到/lihanlin/test文件夹里再启动服务,就能找到相对路径下的库文件了。

除了主运行脚本,还有:

pre-start: 脚本块,在主运行脚本以前执行的脚本
post-start: 脚本块,在主运行脚本以后,running状态以前
pre-stop: 脚本块,在执行stop以前
post-stop: 脚本块,在主运行脚本被杀死以后

 

这里只介绍了最简单的管理程序的方法,upstart还有不少功能,还想更加细致的学习的同窗能够查看官方文档进行学习:

http://upstart.ubuntu.com/cookbook/

原文地址:https://blog.csdn.net/u011344514/article/details/49863091

相关文章
相关标签/搜索