pm2开机启动项目脚本

该方式支持的系统有:

  • systemd: Ubuntu >= 16, CentOS >= 7, Arch, Debian >= 7
  • upstart: Ubuntu <= 14
  • launchd: Darwin, MacOSx
  • openrc: Gentoo Linux, Arch Linux
  • rcd: FreeBSD
  • systemv: Centos 6, Amazon Linux

pm2命令自带生成开机启动脚本的参数:

在命令行终端执行:

pm2 startup

如果是非root用户,这时候会提示如下信息:


  1. $ pm2 startup

  2. [PM2] You have to run this command as root. Execute the following command:

  3. sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v4.3/bin pm2 startup <distribution> -u <user> --hp <home-path>

这时候需要将给出的命令粘贴执行就可以了,不过不用sudo 只粘贴下面的就行:

su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v4.3/bin pm2 startup <distribution> -u <user> --hp <home-path>

执行完之后,系统会自动在开机启动脚本目录生成启动脚本(centos6的该脚本位于:/etc/init.d/pm2-xxxx,centos7的该脚本位于/usr/lib/systemd/system/下)


  1. 注意:当node.js版本更新后,需要如下执行:

  2. pm2 unstartup 清楚掉开机启动脚本

  3. pm2 startup 重新生成


  4. 你也可以使用参数--service-name <name>开机启动某个指定服务,

使用下面的命令保存当前pm2服务列表:

pm2 save

这会在$PM2_HOME/.pm2/dump.pm2文件中保存当前的pm2服务列表

通过命令:   pm2 resurrect    可以从上面保存的服务文件中恢复pm2的服务。

禁用掉开机启动脚本:

pm2 unstartup

更新启动脚本

先执行:

pm2 unstartup

再执行:

pm2 startup

这样就会更新pm2的开机启动脚本。

如果你想以其他普通用户来执行这个脚本,需要使用-u参数和–hp参数,

-u 参数指明你想要执行的用户

–hp参数指明你安装pm2的家目录

如:pm2 startup ubuntu -u www –hp /home/ubuntu

上一条命令指明了以www用户来执行,pm2的运行文件放在了/home/ubuntu下面

作者 龙飞