【转】【Centos】Centos下用upstart管理自己的服务程序
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管理自己的服务程序相关推荐
- Centos下MySql用户管理
Centos下MySql用户管理 1.创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; 2.用户授权 GRANT privile ...
- RedHat/CentOS 7通过nmcli命令管理网络教程
网络管理实际上是对NetworkManager的管理,可通过nmcli命令进行控制,下面以图文的形式为大家介绍下RedHat/CentOS 7通过nmcli命令管理网络的方法,感兴趣的朋友不要错过. ...
- CentOS 7下安装Nextcloud搭建个人网盘
[转载自 https://www.linuxidc.com/Linux/2018-11/155310.htm] 该方法是在linxu公社中发布的.感谢作者! 本人亲测,此方法可行,我在手机.电脑上都可 ...
- CentOS/Ubuntu 下 MySQL 的安装
0. Ubuntu 下 MySQL 的安装 Linux(Ubuntu)下MySQL的安装与配置 检查系统中是否已安装 MySQL $ sudo netstat -tap | grep mysql# 输 ...
- vertica 数据库 linux,CentOS 7下安装vertica记录
CentOS 7下安装vertica记录 1. 安装好centeros 并更新 Centeros安装就不说了,安装完之后联网环境下 yum update.更新下,使得那些包都是新的.(要想用中文 ...
- CentOS 7下的软件安装方法及策略
原文地址 一些废话 2010年开始正式接触Linux,入门发行版是Ubuntu 10.10,后来过渡到Ubunu 11.04,这其中也尝试了很多其他主流的发行版.进入实验室之后,开始用CentOS 5 ...
- CentOS系统下部署Hadoop2.0单机模式
Hadoop的部署前必须按照JDK,且只能使用Oracle 的1.6级以上版本的JDK,不能使用openJDK.事先下载JDK包,如jdk-7u40-linux-x64.tar.gz 1.文件下载上传 ...
- 在 CentOS 7 下配置 Android 开发环境
起因 作为一个 Android 驱动工程师,Linux 很自然的成为了我日常工作的主要操作系统环境. 目前比较流行的 Linux 发行版本已经很多了,流行度最高的应该还是 Ubuntu, 而且 Goo ...
- CentOS 7下简单搭建个人博客——wordpress
CentOS 7下简单搭建个人博客--wordpress 前言: CentOS 7及以上版本不能安装Mysql数据库,我们用的MariaDB数据库代替.mariadb的简单安装与配置可参考:https ...
最新文章
- kotlin中的异常处理_如何使用assertFailsWith在Kotlin中测试异常
- Graphviz样例之无向图
- weex componet 简单扩展
- python画函数曲线-使用Python画数学函数曲线
- awk应用小结(所有命令行均经调试)
- 如何做到 byte[] 和 十六进制 互转?
- 根据标准word模板生成word文档类库(开源)
- 终于找全啦!一二线城市知名互联网公司名单!对着找就对了...
- 一些学习的网址和资料
- UNITY游戏开发源码
- Hadoop各组件详解
- 2022焊工(初级)上岗证题目及在线模拟考试
- 样条曲线(参数曲线)曲率
- python天涯帖子_Python爬虫实战(二):爬取天涯帖子(只看楼主)
- 伤害世界服务器修改,伤害世界获取GM权限修改方法讲解
- 如何有效的获得高质量的大规模标注数据?
- Gabor滤波器详解
- 单片机c语言延时30s程序,单片机C语言的延时程序
- 小程序开发华为P20、voiv下Echarts图表不显示数据、坐标轴等问题
- 影像测量—摄影测量和RTK原理
热门文章
- Python处理脑电--Epochs数据可视化
- Airbnb上市,又一批工程师财富自由:入职一年就能北京买房
- 滴滴自动驾驶,现在是一个怎样的“富二代”创业项目?
- 不用再找换脸教程了,飞桨PaddleGAN给你一键式体验
- app启动流程:冷启动,热启动,暖启动
- 无需VR外设,普林斯顿学霸用DeepHand解放你的双手
- 发布本人汉化最后一个CommunityServer的版本,blog名称也改为 Asp.net源码交流中心...
- Android EditText
- Maven学习总结(2)——Maven项目构建过程练习
- 设计模式(十五)享元模式(结构型)