Upstart是Ubuntu用来进行服务进程管理的服务,本文介绍如何利用upstart来通过Centos操作系统管理我们自己开发的应用程序。

什么时候要管理我们的应用程序?当我们开发出服务类的应用程序,比如后台服务器程序,需要长时间不间断运行的程序,当我们需要关闭时通常需要查看一下线程号再kill掉(当然你也可以写一个脚本做这件事),还需要检查程序什么时候崩溃了及时重启,当部署很多机器时非常麻烦。这时用upstart管理程序,可以用start stop启动、关闭服务,同时可以监控你的服务,再他出现意外退出时重新启动。

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

1、安装upstart

用 yum install upstart安装upstart

2、添加配置文件

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

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

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

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

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

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

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

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

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  

4、启动关闭程序:

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

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

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

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

5、带脚本的配置文件:

假设我的这个/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

【转】【Centos】Centos下用upstart管理自己的服务程序相关推荐

  1. Centos下MySql用户管理

    Centos下MySql用户管理 1.创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 2.用户授权 GRANT privile ...

  2. RedHat/CentOS 7通过nmcli命令管理网络教程

    网络管理实际上是对NetworkManager的管理,可通过nmcli命令进行控制,下面以图文的形式为大家介绍下RedHat/CentOS 7通过nmcli命令管理网络的方法,感兴趣的朋友不要错过. ...

  3. CentOS 7下安装Nextcloud搭建个人网盘

    [转载自 https://www.linuxidc.com/Linux/2018-11/155310.htm] 该方法是在linxu公社中发布的.感谢作者! 本人亲测,此方法可行,我在手机.电脑上都可 ...

  4. CentOS/Ubuntu 下 MySQL 的安装

    0. Ubuntu 下 MySQL 的安装 Linux(Ubuntu)下MySQL的安装与配置 检查系统中是否已安装 MySQL $ sudo netstat -tap | grep mysql# 输 ...

  5. vertica 数据库 linux,CentOS 7下安装vertica记录

    CentOS 7下安装vertica记录 1.    安装好centeros 并更新 Centeros安装就不说了,安装完之后联网环境下 yum update.更新下,使得那些包都是新的.(要想用中文 ...

  6. CentOS 7下的软件安装方法及策略

    原文地址 一些废话 2010年开始正式接触Linux,入门发行版是Ubuntu 10.10,后来过渡到Ubunu 11.04,这其中也尝试了很多其他主流的发行版.进入实验室之后,开始用CentOS 5 ...

  7. CentOS系统下部署Hadoop2.0单机模式

    Hadoop的部署前必须按照JDK,且只能使用Oracle 的1.6级以上版本的JDK,不能使用openJDK.事先下载JDK包,如jdk-7u40-linux-x64.tar.gz 1.文件下载上传 ...

  8. 在 CentOS 7 下配置 Android 开发环境

    起因 作为一个 Android 驱动工程师,Linux 很自然的成为了我日常工作的主要操作系统环境. 目前比较流行的 Linux 发行版本已经很多了,流行度最高的应该还是 Ubuntu, 而且 Goo ...

  9. CentOS 7下简单搭建个人博客——wordpress

    CentOS 7下简单搭建个人博客--wordpress 前言: CentOS 7及以上版本不能安装Mysql数据库,我们用的MariaDB数据库代替.mariadb的简单安装与配置可参考:https ...

最新文章

  1. kotlin中的异常处理_如何使用assertFailsWith在Kotlin中测试异常
  2. Graphviz样例之无向图
  3. weex componet 简单扩展
  4. python画函数曲线-使用Python画数学函数曲线
  5. awk应用小结(所有命令行均经调试)
  6. 如何做到 byte[] 和 十六进制 互转?
  7. 根据标准word模板生成word文档类库(开源)
  8. 终于找全啦!一二线城市知名互联网公司名单!对着找就对了...
  9. 一些学习的网址和资料
  10. UNITY游戏开发源码
  11. Hadoop各组件详解
  12. 2022焊工(初级)上岗证题目及在线模拟考试
  13. 样条曲线(参数曲线)曲率
  14. python天涯帖子_Python爬虫实战(二):爬取天涯帖子(只看楼主)
  15. 伤害世界服务器修改,伤害世界获取GM权限修改方法讲解
  16. 如何有效的获得高质量的大规模标注数据?
  17. Gabor滤波器详解
  18. 单片机c语言延时30s程序,单片机C语言的延时程序
  19. 小程序开发华为P20、voiv下Echarts图表不显示数据、坐标轴等问题
  20. 影像测量—摄影测量和RTK原理

热门文章

  1. Python处理脑电--Epochs数据可视化
  2. Airbnb上市,又一批工程师财富自由:入职一年就能北京买房
  3. 滴滴自动驾驶,现在是一个怎样的“富二代”创业项目?
  4. 不用再找换脸教程了,飞桨PaddleGAN给你一键式体验
  5. app启动流程:冷启动,热启动,暖启动
  6. 无需VR外设,普林斯顿学霸用DeepHand解放你的双手
  7. 发布本人汉化最后一个CommunityServer的版本,blog名称也改为 Asp.net源码交流中心...
  8. Android EditText
  9. Maven学习总结(2)——Maven项目构建过程练习
  10. 设计模式(十五)享元模式(结构型)