pm2启动没有启动Ubuntu

时间:2016-01-15 22:39:17

标签: ubuntu pm2

我很难在服务器重新启动时让pm2重新启动(本身和两个节点/快速文件app.js& app2.js)。

以下是我尝试的流程:

pm2 startup
pm2 start app.js
pm2 start app2.js
pm2 startup ubuntu (also tried systemd and with/without -u username)
pm2 save

我在每个可能的组合中运行上述命令,但没有任何效果。我尝试以root身份运行,但它也没有用。

我的~/.pm2/dump.pm2文件包含信息,因此我不确定在哪里查看。

我试图根据this issue修改我的/etc/init.d/pm2-init.sh文件,但没有帮助。

我的设置:
数字海洋服务器
Ubuntu 15.10
节点v5.4.1
PM2 v 1.0.0

我试过的其他参考文献。
http://pm2.keymetrics.io/docs/usage/startup/
https://www.digitalocean.com/community/tutorials/how-to-use-pm2-to-setup-a-node-js-production-environment-on-an-ubuntu-vps
https://gist.github.com/leommoore/5998406
https://www.terlici.com/2015/06/20/running-node-forever.html
https://serversforhackers.com/node-process-management-with-pm2 http://nodered.org/docs/getting-started/running.html#starting-node-red-on-boot
https://github.com/Unitech/pm2/issues/1316

到目前为止,每次重启服务器时,pm2都无法自动启动(除非我需要等待几分钟? - nginx立即重启)。

有人可以帮我解决这个问题吗?命令应该运行的顺序是什么?我是否需要修改任何其他文件?

5 个答案:

答案 0 :(得分:5)

您必须使用

保存您的节点应用
 pm2 start [app_name]
 pm2 save

然后做:

 pm2 startup [operation system]

这将创建一个dump.pm2文件,pm2需要在重新启动时运行您的应用程序。

答案 1 :(得分:2)

我想我solved the problem

  

我和pm2一起玩,并为CentOS 7找到了两种工作方式(在你的   项目文件夹index.js - 主文件):

     
      
  • 1

    sudo pm2 start index.js
    sudo pm2 save
    sudo pm2 startup centos
    
  •   
  • 2

    pm2 start index.js
    pm2 save
    pm2 startup centos
    '# and run the script generated in the previous code under sudo
    
  •   

答案 2 :(得分:1)

您是否尝试在Ubuntu(:hover)上检查启动日志?

您可能会看到如下错误:

cat /var/log/boot.log

我自己还没有能够解决这个问题,但至少这应该指向正确的方向。

答案 3 :(得分:0)

对我来说,解决方案是使用 systemctl 重新启动pm2:systemctl reload-or-restart pm2-root

当我第一次设置Ubuntu 18.04服务器时,我运行了pm2 start app.js以启动我的应用程序。然后,当我尝试运行pm2 startup + pm2 save以在启动时重新启动应用程序时,这似乎不起作用,因为通过运行systemctl list-units,pm2没有出现在服务列表中。即使该应用正在运行(pm2 list已确认)。因此我运行了systemctl list-units -all,pm2显示为“无效”和“死亡”。

我做到了:

  • systemctl status pm2-root(只是为了确认它是“无效” /“死亡”)

  • systemctl reload-or-restart pm2-root(通过 systemctl 重新启动pm2)

  • systemctl status pm2-root(以确认pm2现在处于“活动” /“运行中”状态)

  • 然后我还运行systemctl enable pm2-root,以使PM2在启动时运行(不确定是否需要)

  • 然后再次pm2 startup + pm2 save(用于启动时)

OBS:我在与pm2-root用户一起运行pm2的命令中使用了root,但是如果需要,您应该替换用户(pm2-<USER>)。

答案 4 :(得分:0)

在Ubuntu中获得以下代码:

pm2 start main.js
pm2 save
pm2 startup ubuntu

请注意,“ pm2保存”将在/root/.pm2/dump.pm2中创建dump.pm2文件,并且在重新启动计算机时将使用该文件。

如果您不知道操作系统名称,请使用:

pm2 startup

PM2将自动检测您的操作系统。