在 Linux 上,有多种方法可以实现 Node.js 应用的自动重启。以下是一些常用的方法:

PM2 是一个非常流行的 Node.js 进程管理器,可以轻松实现应用的自动重启。
npm install pm2 -gpm2 start app.js --name my-appPM2 可以配置为在应用崩溃或服务器重启时自动重启。
pm2 startuppm2 savepm2 startup 会生成一个启动脚本,pm2 save 会将当前的进程列表保存到磁盘,以便在服务器重启后自动恢复。
systemd 是 Linux 系统的服务管理器,可以用来管理 Node.js 应用的启动和停止。
创建一个服务文件 /etc/systemd/system/my-app.service:
[Unit]Description=My Node.js ApplicationAfter=network.target[Service]ExecStart=/usr/bin/node /path/to/your/app.jsRestart=alwaysUser=your-userEnvironment=NODE_ENV=productionEnvironment=PORT=3000[Install]WantedBy=multi-user.targetsudo systemctl daemon-reloadsudo systemctl start my-appsudo systemctl enable my-appSupervisor 是一个进程控制系统,可以用来监控和控制多个进程。
sudo apt-get install supervisor -y创建一个配置文件 /etc/supervisor/conf.d/my-app.conf:
[program:my-app]command=/usr/bin/node /path/to/your/app.jsautostart=trueautorestart=truestderr_logfile=/var/log/my-app.err.logstdout_logfile=/var/log/my-app.out.loguser=your-userenvironment=NODE_ENV="production",PORT="3000"sudo supervisorctl rereadsudo supervisorctl updatesudo supervisorctl start my-app虽然这种方法不如前面几种方法稳定,但也可以实现自动重启。
创建一个脚本 restart-app.sh:
#!/bin/bashpm2 restart my-appchmod +x restart-app.sh编辑用户的 crontab 文件:
crontab -e添加一行来定期重启应用:
* * * * * /path/to/restart-app.sh以上方法各有优缺点,可以根据具体需求选择合适的方法来实现 Node.js 应用的自动重启。