PM2启动的命令行参数是什么意思

What does the command line arguments for PM2 startup mean precisely

我对启动脚本和命令行选项有点困惑。我正在为我的节点应用程序构建一个基于 raspberry pi 的小型服务器。为了最大程度地防止电源故障和闪存写入损坏,根文件系统是只读的,包含我的主要用户的主目录,存储了我的应用程序(其中两个)的生产版本。因为这里的 .pm2 目录不适合日志等,我目前将 PM2_HOME 环境变量设置为 /var 中的一个位置(它周围有 512kb 未使用 space 以确保写入 i。eco-system.json 文件也读取此环境变量以确定放置其日志的位置。

如果需要,我还有一个辅助用户,在另一个分区(受其周围的缓冲区 space 保护)中有一个读写主目录。这包含我的应用程序代码的开发版本,由于设置环境的便利性等,我也想用 PM2 进行监控。如果我需要调查问题,我可以登录该用户并 运行 并在那里测试应用程序。

由于这是一个无头的盒子,并且内置了看门狗和内核恐慌重启,我希望 pm2 在引导期间启动并至少重启两个生产应用程序。理想情况下,它也应该启动该应用程序的两个开发版本,但如果它不可能,我可以没有它。

我可以将只读根分区切换到 read/write - 事实上,当我通过 ssh 进入我的生产用户帐户时,它会自动执行此操作。当我注销时它会自动切换回只读。

所以我去这个帐户尝试创建一个启动脚本。然后它说(毫不奇怪)我必须 运行 像这样的 sudo 命令:-

sudo su -c "env PATH=$PATH:/usr/local/bin pm2 startup ubuntu -u pi --hp /home/pi"

这里对我来说关键问题是 --hp 开关。我去寻找一些关于它意味着什么的线索。它显然是一个主目录,但它不匹配 PM2_HOME - 在我的例子中设置为 /var/pas 以将其从只读区域中取出。我不想尝试用不应该存在的文件喷洒我的主目录。所以我在这里寻求一些指导

我通过实验发现了它对 "ubuntu" 启动脚本的作用。它通过在脚本中附加“/.pm2”来使用它来设置脚本中的 PM2_HOME。

然而,一旦脚本创建并设置 PM2_HOME 为您想要的任何内容,就没有什么能阻止您编辑脚本了。

如此有效,它是脚本的助手,但仅此而已。