使用systemd启动服务

在实际运维工作中,我们经常会使用nohup与&结合来启动后台服务,也可能会使用到screen来启动后台服务,但在centos7后系统提供了systemd来管理后台服务。

之前我们是这样子来启动后台服务的:

nohup ./massminer --config conf/chia.json m2 > /dev/null 2>&1 &

看起来比较土一点,但是能解决实际运维问题。这里有几个麻烦的点,你需要重启服务时,必须跟kill命令一起结合指定目标pid才能完成。

使用systemd我们可以这样来定义后台服务,如下:

cat >/lib/systemd/system/massminer.service<<EOF
[Unit]
Description=Mass Miner
Documentation=https://www.massexplorer.org/
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/mass/massminer
ExecStart=/home/mass/massminer/massminer --config /home/mass/massminer/config.json m2 &
KillMode=process
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF

自定义后台服务后,希望systemctl马上能识别,可以通过如下命令进行重载:
systemctl daemon-reload
启动服务:
systemctl start massminer
关闭服务:
systemctl stop massminer
查看服务:
systemctl status massminer
使用systemd来管理后台服务后更加简洁方便。