在Ubuntu1204中使用了Upstart进行了大部分服务的启动管理,并且Upstart也可以在CentOS中使用。Upstart相比SystemV增加了对于服务状态的简单管理,例如:
- 可以在服务出现问题时重新启动。
CentOS中如果没有安装可以使用YUM进行安装:
yum install upstart
Upstart所管理的服务配置脚本放在/etc/init
中,以.conf结尾,例如:我们使用Upstart来启动一个用Java写的MQTT服务器。
$ sudo vi /etc/init/mqtt.conf
内容如下:
description "MQTT Broker" start on filesystem or runlevel [2345] stop on runlevel [!2345] respawn respawn limit 10 5 script export PATH=/home/ubuntu/jdk1.8.0_202/bin:$PATH cd /home/ubuntu/mqtt/ exec bin/mqtt >> mqtt.log 2>&1 end script
完成后就可以启动服务了
$ sudo start mqtt
也可以执行关闭服务
$ sudo stop mqtt
文件中除了script主运行脚本块外,还有定义如下几种脚本块:
pre-start: 在主运行脚本之前执行的脚本 post-start: 在主运行脚本之后,running状态之前 pre-stop: 在执行stop之前 post-stop: 在主运行脚本被杀死之后
Upstart还有一些额外的功能,如:带参数启动等。