如何在Ubuntu服务器的Laravel项目中用Supervisor运行并监控Node.js索引文件?
在Ubuntu服务器用Supervisor自动管理Laravel项目中的Node.js进程
以下是实现自动启动、监控并在崩溃时重启Node.js进程的完整步骤:
1. 安装Supervisor
首先更新系统包并安装Supervisor:
sudo apt update && sudo apt install supervisor
2. 创建Supervisor进程配置文件
在Supervisor的配置目录下新建一个专属配置文件,比如laravel-node.conf:
sudo nano /etc/supervisor/conf.d/laravel-node.conf
将以下内容粘贴到文件中,注意替换所有占位符为你的实际路径和信息:
[program:laravel-node] command=/usr/bin/node /var/www/your-laravel-project/node/index.js directory=/var/www/your-laravel-project/node user=www-data autostart=true autorestart=true stdout_logfile=/var/log/supervisor/laravel-node.log stderr_logfile=/var/log/supervisor/laravel-node.err.log redirect_stderr=true
参数说明:
command:指定Node.js可执行文件路径(可通过which node获取实际路径)和你的Node.js主文件(index.js)的绝对路径directory:Node.js文件所在的目录,确保进程启动时处于正确的工作路径user:运行进程的用户,推荐使用www-data(和Web服务器同用户)或你的服务器用户,需确保该用户有项目文件的读写权限autostart=true:服务器启动时自动启动该进程autorestart=true:进程崩溃、退出时自动重启stdout_logfile/stderr_logfile:指定日志文件路径,方便排查问题
3. 加载配置并启动进程
保存配置文件后,让Supervisor重新读取配置并应用:
sudo supervisorctl reread sudo supervisorctl update
启动Node.js进程:
sudo supervisorctl start laravel-node
你可以通过以下命令查看进程状态:
sudo supervisorctl status laravel-node
4. 验证自动重启功能
手动杀死Node.js进程测试自动重启:
pkill -f "node /var/www/your-laravel-project/node/index.js"
再次查看进程状态,确认进程已自动重启:
sudo supervisorctl status laravel-node
也可以查看日志文件确认重启记录:
tail -f /var/log/supervisor/laravel-node.log
内容的提问来源于stack exchange,提问作者Krina Mangukiya
相关产品推荐
相关产品推荐

