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

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。

生成启动脚本

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

$ pm2 startup
[PM2] You have to run this command as root. Execute the following command:
      sudo su -c "env PATH=$PATH:/home/unitech/.nvm/versions/node/v14.3/bin pm2 startup <distribution> -u <user> --hp <home-path>

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

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 )

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

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

pm2 save

手动复活进程

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

pm2 resurrect

禁用启动系统

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

pm2 unstartup

上一行代码让 PM2 检测您的平台。或者,您可以自己使用另一个指定的初始化系统:

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

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

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

$ pm2 unstartup

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

$ pm2 startup

用户权限

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

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

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

指定初始化系统

如果你愿意,你可以指定你自己使用的平台(平台可以是上面提到的任何一个):

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

SystemD 安装检查

# Check if pm2-<USER> service has been added
$ systemctl list-units
# Check logs
$ journalctl -u pm2-<USER>
# Cat systemd configuration file
$ systemctl cat pm2-<USER>
# Analyze startup
$ systemd-analyze plot > output.svg

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

[Unit]
Wants=network-online.target
After=network.target network-online.target

[....]

[Install]
WantedBy=multi-user.target network-online.target

Windows 启动脚本

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

支持初始化系统

  • 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

作者:Jeebiz  创建时间:2023-02-25 14:22
最后编辑:Jeebiz  更新时间:2023-02-26 22:38