Nodejs 在linux上如何设置pm2开机自启动?
Nodejs 在linux上如何设置pm2开机自启动?
我在 /etc/rc.d/rc.local 里加入了启动命令 /usr/local/bin/pm2 start /usr/app/node/koa/app.js --name koa --node-args="–harmony-generators" --watch > /tmp/startup.log 2>&1 重启之后启动不成功,报这样的错: /usr/local/bin/pm2: line 4: exec: : not found 不过路径是对的,把上面的命令直接复制到linux命令行下执行也能成功的,就是放到开机启动的时候报错。
要在Linux系统上设置PM2开机自启动,可以通过配置rc.local
文件来实现。但是,由于不同的Linux发行版可能有不同的初始化机制,我们还需要确保rc.local
文件具有可执行权限,并且系统支持该文件。
以下是详细的步骤和示例代码:
步骤 1: 确保rc.local
文件存在并具有可执行权限
首先,检查/etc/rc.d/rc.local
(对于基于Red Hat的系统)或/etc/rc.local
(对于其他系统)是否存在。如果不存在,可以手动创建并赋予其可执行权限。
sudo touch /etc/rc.local
sudo chmod +x /etc/rc.local
步骤 2: 编辑rc.local
文件
使用文本编辑器(如nano
或vim
)打开rc.local
文件,并添加启动PM2的命令。
sudo nano /etc/rc.local
在文件中添加以下内容:
#!/bin/bash
# /etc/rc.local
# By default this script does nothing
# Start PM2 application
export PATH=$PATH:/usr/local/bin
/usr/local/bin/pm2 start /usr/app/node/koa/app.js --name koa --node-args="--harmony-generators" --watch > /tmp/startup.log 2>&1
exit 0
步骤 3: 验证环境变量
确保PATH
环境变量包含/usr/local/bin
,因为这是PM2的安装位置。如果/etc/rc.local
中没有设置PATH
,可以在文件顶部添加导出命令。
步骤 4: 检查PM2服务状态
为了确保PM2能够正确运行,建议先手动启动PM2服务,并检查是否有错误。
sudo pm2 start /usr/app/node/koa/app.js --name koa --node-args="--harmony-generators" --watch
sudo pm2 save
步骤 5: 设置PM2开机启动
PM2提供了一个简单的命令来自动将应用程序设置为开机启动:
sudo pm2 startup
此命令会输出一个需要执行的命令,例如:
sudo env PATH=$PATH:/usr/local/bin pm2 startup systemd -u yourusername --hp /home/yourusername
将上述命令复制并粘贴到终端中执行,以完成PM2的开机自启动配置。
通过以上步骤,你应该能够在Linux系统上成功设置PM2开机自启动。如果遇到问题,可以检查日志文件(如/tmp/startup.log
)以获取更多信息。
ubuntu: pm2 startup upstart arch: pm2 startup systemctl
如此类推
centos呢。。
请问你解决了吗
#!/bin/bash
// 这里输命令,一行一个