温馨提示×

CentOS上Node.js服务如何自动重启

小樊
35
2025-11-23 19:04:59
栏目: 编程语言

在CentOS上,您可以使用Systemd或Supervisord来自动重启Node.js服务。这里是两种方法的详细步骤:

方法一:使用Systemd

  1. 创建一个新的Systemd服务文件:
sudo vi /etc/systemd/system/nodejs.service
  1. 将以下内容粘贴到服务文件中,根据需要进行修改:
[Unit]
Description=Node.js Application Service
After=network.target

[Service]
Type=simple
User=<your_user>
WorkingDirectory=/path/to/your/nodejs/app
ExecStart=/usr/bin/node /path/to/your/nodejs/app/app.js
Restart=on-failure
RestartSec=5s

[Install]
WantedBy=multi-user.target

<your_user>替换为您的用户名,将/path/to/your/nodejs/app替换为您的Node.js应用程序的路径。

  1. 保存并关闭文件。

  2. 重新加载Systemd配置:

sudo systemctl daemon-reload
  1. 启动Node.js服务:
sudo systemctl start nodejs
  1. 设置Node.js服务开机自启:
sudo systemctl enable nodejs

现在,您的Node.js服务将在CentOS启动时自动运行,并在发生故障时自动重启。

方法二:使用Supervisord

  1. 首先,确保您已经安装了Supervisord:
sudo yum install epel-release
sudo yum install supervisor
  1. 创建一个新的Supervisord配置文件:
sudo vi /etc/supervisord.d/nodejs.conf
  1. 将以下内容粘贴到配置文件中,根据需要进行修改:
[program:nodejs]
directory=/path/to/your/nodejs/app
command=/usr/bin/node /path/to/your/nodejs/app/app.js
user=<your_user>
autostart=true
autorestart=true
stderr_logfile=/var/log/nodejs.err.log
stdout_logfile=/var/log/nodejs.out.log

<your_user>替换为您的用户名,将/path/to/your/nodejs/app替换为您的Node.js应用程序的路径。

  1. 保存并关闭文件。

  2. 重新加载Supervisord配置:

sudo supervisord -c /etc/supervisord.conf

现在,您的Node.js服务将在CentOS启动时自动运行,并在发生故障时自动重启。您还可以使用以下命令来管理Supervisord中的Node.js服务:

  • 查看状态:sudo supervisorctl status nodejs
  • 停止服务:sudo supervisorctl stop nodejs
  • 启动服务:sudo supervisorctl start nodejs

0