如何在systemd服务失效时自动重启?

6
我编写了一个使用node.js运行TCP服务器的服务,用于将来自微控制器的数据传输到MySQL服务器。
root@DietPi:~# sudo cat /lib/systemd/system/mysqlwifi.service 
 [Unit]
 Description=MySQL exampledb update
 After=multi-user.target
 After=network-online.target
 Wants=network-online.target

 [Service]
 Type=idle
 ExecStart=/usr/bin/node /home/dietpi/node_server/mysqlwifi.js > /home/dietpi/node_server/mysqlwifi.log 2>&1

 [Install]
 WantedBy=multi-user.target
root@DietPi:~#

由于这项服务对于将数据推送至MySQL至关重要,因此我希望在出现故障时自动重新启动。 我还想知道如何在每次故障或服务恢复时发送电子邮件。

1个回答

10
[Service]
Restart=on-failure

设置Restart=on-failure到你的单元配置中就可以了,但是请查看Restart文档以获取更多选项。 要发送电子邮件,您可以使用ExecStartPost=条款和mailx调用。


我想编辑这个答案,以便将其放置在[Service]部分下面,但现在编辑队列已满。 - Valerio Bozz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接