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

How to automatically restart systemd service on failure?

我编写了这个运行 TCP 服务器的服务,使用 node.js 将数据从微控制器传输到 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 至关重要,因此我希望它在失败时自动重启。我还想知道如何在每次失败或服务恢复时发送电子邮件。

Restart=on-failure 设置为您的服务配置应该可以,但请检查 Restart documentation 以获得更多选项。 要发送电子邮件,您可以使用带有 mailx 调用的 ExecStartPost= 子句。