在CentOS上实现Node.js应用程序的自动重启,可以使用以下几种方法:
PM2是一个功能强大的Node.js进程管理器,可以帮助您在CentOS上实现Node.js应用程序的自动重启。首先,您需要安装PM2:
sudo yum install -y nodejs npm
sudo npm install pm2@latest -g
接下来,使用PM2启动您的Node.js应用程序:
pm2 start app.js --name my-app
现在,您的应用程序将在后台运行,并在发生故障时自动重启。您还可以使用以下命令查看应用程序的状态:
pm2 status
要设置PM2在系统启动时自动运行,请执行以下命令:
pm2 startup
然后,保存当前的PM2进程列表,以便在系统重启后恢复:
pm2 save
创建一个新的Systemd服务文件:
sudo vi /etc/systemd/system/my-app.service
将以下内容粘贴到文件中,用您的实际应用程序路径和用户替换/path/to/your/app.js
和your-user
:
[Unit]
Description=My Node.js App
After=syslog.target network.target
[Service]
User=your-user
WorkingDirectory=/path/to/your/app
ExecStart=/usr/bin/node /path/to/your/app.js
Restart=always
[Install]
WantedBy=multi-user.target
保存并退出文件。
启用并启动新创建的服务:
sudo systemctl enable my-app.service
sudo systemctl start my-app.service
现在,您的Node.js应用程序将在系统启动时自动运行,并在发生故障时自动重启。
首先,安装Supervisor:
sudo yum install -y epel-release
sudo yum install -y supervisor
接下来,创建一个新的Supervisor配置文件:
sudo vi /etc/supervisord.d/my-app.conf
将以下内容粘贴到文件中,用您的实际应用程序路径替换/path/to/your/app.js
:
[program:my-app]
command=/usr/bin/node /path/to/your/app.js
autostart=true
autorestart=true
stderr_logfile=/var/log/my-app.err.log
stdout_logfile=/var/log/my-app.out.log
user=your-user
保存并退出文件。
重新启动Supervisor以应用更改:
sudo systemctl restart supervisord
现在,您的Node.js应用程序将在系统启动时自动运行,并在发生故障时自动重启。您还可以使用以下命令查看应用程序的状态:
sudo supervisorctl status my-app
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>