【发布时间】:2018-07-19 05:31:12
【问题描述】:
我将此单元文件作为 systemd 服务运行。它基本上启动了在本地网络上的 Raspberry Pi 上运行的 Nodejs Express 应用程序。该应用程序运行良好,但如果由于某种原因路由器或网络出现故障并再次备份,该应用程序将停止侦听,我必须重新启动 systemd 服务才能使其再次运行。
[Unit]
Description=Employee Manager PiClock VueJs App
Wants=network-online.target
After=network-online.target
[Service]
ExecStart=/home/pi/.nvm/versions/node/v8.9.4/bin/node /home/pi/employee-manager-app/vuejs-app-server/app.js
User=pi
Restart=always
# Restart service after 2 seconds if node service crashes
RestartSec=2
[Install]
WantedBy=multi-user.target
如果网络再次出现故障,是否有办法自动重新启动服务?
【问题讨论】:
-
我通过检测应用程序中的网络断开解决了这个问题。发生这种情况时,您可以从 app.js 调用
process.exit()并将其留给 systemd 以重新启动服务,然后您的应用将再次连接到网络.并尽可能多地尝试实现干净的退出。
标签: node.js linux networking service systemd