要在 Linux 中实现自动重启挂掉的 Node.js 服务,你可以使用进程管理工具来监控并重新启动服务。在这里,我将介绍如何使用 systemd 来实现自动重启。
创建一个 .service 文件,用于定义你的 Node.js 服务。打开终端,使用文本编辑器创建一个新文件,比如 node-service.service:
bash
sudo nano /etc/systemd/system/node-service.service
在文件中添加以下内容:
[Unit]
Description=Node.js Service
Documentation=
[Service]
ExecStart=/usr/bin/node /path/to/your/node-app.js
WorkingDirectory=/path/to/your/app/directory
Restart=always
RestartSec=3
User=your_username
Environment=NODE_ENV=production
[Install]
WantedBy=multi-user.target
请根据你的实际情况进行修改:
ExecStart:指定启动 Node.js 服务的命令,包括 Node.js 可执行文件的路径和你的 Node.js 应用的入口文件路径。
WorkingDirectory:指定工作目录,即你的 Node.js 应用所在的目录。
Restart:设置为 always,表示当服务退出时自动重启。
RestartSec:指定重启的时间间隔,单位为秒。
User:指定服务运行的用户。建议指定非特权用户。
Environment:设置环境变量,比如 NODE_ENV。
保存并关闭文件。按下 Ctrl + X,然后输入 Y 确认保存。
启用和启动服务。运行以下命令启用服务并启动它:
bash
sudo systemctl enable node-service
sudo systemctl start node-service
现在,你的 Node.js 服务将在 5024 端口上运行,并在发生异常或退出时自动重启。
你可以使用以下命令来管理你的 Node.js 服务:
启动服务:sudo systemctl start node-service
停止服务:sudo systemctl stop node-service
重启服务:sudo systemctl restart node-service
查看服务状态:sudo systemctl status node-service
请根据你的实际情况修改文件路径、文件名、服务名称和其他配置项。这样,你就可以通过 systemd 在 Linux 中实现自动重启挂掉的 Node.js 服务。