在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还有一些额外的功能,如:带参数启动等。

[ 编辑 | 历史 ]
最近由“jilili”在“2020-06-14 14:43:02”修改