持久性应用程序:启动脚本生成器

PM2 可以生成启动脚本并对其进行配置,以便在预期或意外的机器重新启动时保持您的进程列表完整。

1.生成启动脚本

要自动生成和配置启动脚本,只需键入命令(不带 sudo)pm2 startup

  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/v14.3/bin pm2 startup <distribution> -u <user> --hp <home-path>

然后将显示的命令复制/粘贴到终端上:

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

现在 PM2 将在启动时自动重启。
注意:您可以通过--service-name <name>选项(#3213)自定义服务名称。

2.保存要在重启时恢复的应用程序列表

启动所有所需的应用程序后,保存应用程序列表,以便在重新启动后重新生成:

  1. pm2 save

3.手动复活进程

要手动恢复以前保存的进程(通过 pm2 save):

  1. pm2 resurrect

4.禁用启动系统

要禁用和删除当前的启动配置:

  1. pm2 unstartup

5.具体了解

5.1.Node.js 版本升级后更新启动脚本

当您升级本地 Node.js 版本时,请务必更新 PM2 启动脚本,以便它运行您安装的最新 Node.js 二进制文件。

首先禁用并删除当前的启动配置(复制/粘贴该命令的输出):

  1. $ pm2 unstartup

然后恢复一个全新的启动脚本:

  1. $ pm2 startup

5.2.用户权限

假设您希望在另一个用户下执行启动脚本。

只需更改-u <username>选项和--hp <user_home>

  1. pm2 startup ubuntu -u www --hp /home/ubuntu

5.3.指定初始化系统

如果您愿意,您可以指定您自己使用的平台(其中平台可以是上述任一平台):

  1. pm2 startup [ubuntu | ubuntu14 | ubuntu12 | centos | centos6 | arch | oracle | amazon | macos | darwin | freebsd | systemd | systemv | upstart | launchd | rcd | openrc]

5.4.SystemD安装检查

  1. # 检查是否已添加pm2-<USER>服务
  2. $ systemctl list-units
  3. # 检查日志
  4. $ journalctl -u pm2-<USER>
  5. # Cat systemd配置文件
  6. $ systemctl cat pm2-<USER>
  7. # 分析启动
  8. $ systemd-analyze plot > output.svg

要有效地等待该机器在线以便 PM2 运行:

  1. [Unit]
  2. Wants=network-online.target
  3. After=network.target network-online.target
  4. [....]
  5. [Install]
  6. WantedBy=multi-user.target network-online.target

5.5.Windows 启动脚本

要生成 Windows 兼容的启动脚本,请查看优秀的pm2-installer

5.6.支持初始化系统

  • 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命令自动检测这些初始化系统。