Ubuntu 14.04 - pm2启动后重启后无法启动

时间:2015-09-24 19:22:44

标签: ubuntu ubuntu-14.04 pm2

我正在使用pm2启动node.js进程,我希望在启动系统(Intel Atom处理器上的Ubuntu 14.04)时自动启动此进程。我按照pm2 web site上的说明操作,但没有成功。我的dump.pm2似乎是正确的,但pm2守护程序永远不会启动。我已尝试将ubuntulinux两个选项都添加到pm2 startup,以及自动检测,无论是否有指定用户。已在S20pm2-init.sh中创建了文件(链接)/etc/rc[2-5].d但未启动任何内容。我在系统日志中找不到任何明显的错误消息。

有什么想法吗?

编辑以添加

我找到了     从我的登录帐户运行时,service pm2-init.sh start正确启动守护程序,该帐户与文件USER=/etc/init.d/pm2-init.sh定义的守护程序相同。我已确保此文件中的PM2_HOME定义也指向正确的位置。但是,它仍然无法在系统启动时启动!

5 个答案:

答案 0 :(得分:5)

为了让pm2启动工作,documentationhere.

中隐藏了一个关键命令
  

您必须1)启动所有进程,2)创建启动脚本,3)运行pm2 save

参考@lazlojuly's answer here

答案 1 :(得分:3)

在Ubuntu 18.04.4上哪些步骤对我有用?

  1. npm i pm2 -g
  2. 以root用户身份运行此命令:pm2 startup
    • 创建在pm2-root中找到的服务/etc/systemd/system
  3. systemctl enable pm2-rootservice pm2-root status
    • 注意:节点升级后,以root用户身份运行以下命令:pm2 unstartuppm2 startupdocumentation
  4. pm2 start dist\index.js --name YourNodeApp
  5. pm2 save
  6. reboot
  7. pm2 ls应该在线显示您的YourNodeApp

答案 2 :(得分:2)

嗯,我认为无论如何这都有效。我最初试图以一个名为node-red的系统用户(没有登录shell)来运行同名的节点应用程序,当它没有工作时我尝试以普通用户max开始。经过一些摆弄它突然开始工作的东西,在这个速度慢的Atom处理器上,节点应用程序在桌面出现后几分钟才启动。

要让它在系统用户下运行:首先,以max身份登录,删除所有pm2作业并运行pm2 save以创建空转储文件。然后我做了:

sudo npm install pm2@latest -g
pm2 update

获取最新版本,以防万一。我从0.14.7移到了0.15.7

然后我跑了

sudo su -c "env PATH=$PATH:/usr/bin pm2 startup ubuntu -u node-red"

并编辑/etc/init.d/pm2-init.sh更正将PM2_HOME目录设置为node-red主目录的行:

export PM2_HOME="/home/node-red/.pm2"

然后我成为node-red用户的登录版本,更改为该用户的主目录,启动了我的工作,并保存了进程列表:

sudo -H -u node-red bash -l
cd
pm2 start /usr/local/bin/node-red --node-args="--max-old-space-size=128" -- -v -u /home/node-red/.node-red
pm2 save

然后我退出node-red的shell,重新启动,并且(大约一分钟后延迟)应用程序运行良好!

请注意,这是ubuntu 14.04,它使用init / upstart系统。我认为在以后的版本中使用systemd方法,在创建启动脚本时可能需要将ubuntu参数更改为systemd

我仍然不确定为什么它第一次没有正常工作。

答案 3 :(得分:0)

我一直在寻找戒烟的工作,直到我找到这个解决方案

执行pm2保存后

  1. 将创建此文件 - > /etc/init.d/pm2-init.sh
  2. 然后在cron选项卡上  @reboot root /etc/init.d/pm2-init.sh start 这相当于在cmd上执行它但在重启时触发
  3. 这对我来说现在很好用

答案 4 :(得分:0)

基本上,

步骤1:运行以下命令,

pm2 startup

这里您将生成1条命令,copy/paste并完成。

(您将从上一步获得的示例命令:sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntuRef

相关问题