返回介绍

启动脚本 Persistent App

发布于 2024-04-14 00:45:03 字数 3316 浏览 0 评论 0 收藏 0

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

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] 您必须以 root 身份运行此命令。 执行以下命令:
$ 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 保存):

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 安装检查

# 查看是否添加了 pm2-<USER>服务
$ systemctl list-units

# 检查日志
$ journalctl -u pm2-<USER>

# 猫系统配置文件
$ systemctl cat pm2-<USER>

# 分析启动
$ 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 兼容的启动脚本,请查看出色的 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 启动 命令自动检测。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文