登录
注册
node.js 学习社区
怎么让PM2在CentOS启动时执行?

撸阿

2015-01-31 20:29

我改了/etc/rc.d/rc.local(启动执行级别是对的),但是pm2没有启动成功:

pm2 start app.js

回复 · 3

  • 其实也挺简单的

    第一次你在命令行下,把需要pm2运行的node命令都运行一遍,例如:

    pm2 start app.js

    然后,让pm2 dump这些进程列表

    pm2 save

    然后,让pm2生成一个自动运行的脚本

    pm2 startup centos 

    这行命令会在 /etc/init.d/ 生成一个 pm2-init.sh脚本,运行两条shell命令,让它成为服务:

    chmod +x /etc/init.d/pm2-init.sh
    
    chkconfig --add pm2-init.sh

    重启机器,你会发现上一次执行的pm2进程,都自己恢复了。


    原理是什么呢?可以看下/etc/init.d/pm2-init.sh:

    #start() 在启动时恢复
    super $PM2 resurrect
    ...
    
    #stop() 在停止时dump进程列表
    super $PM2 dump 



    2

  • @龙三 可行,谢谢!

    1

  • 还有一个问题,就是如果你的程序里有依赖的环境变量,最好export到这个 pm2-init.sh里,在pm2服务执行前设置

    0

发表回复

你可以在回复中 @ 其他人