pm2 启动未在 Ubuntu 上启动
pm2 Startup not starting up on Ubuntu
我很难让 pm2 在服务器重新启动时重新启动(它本身和两个 node/express 文件,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 身份 运行ning,但它也没有用。
我的 ~/.pm2/dump.pm2
文件包含信息,因此我不确定还能在哪里查看。
我试图根据 this issue 修改我的 /etc/init.d/pm2-init.sh
文件,但没有帮助。
我的设置:
数字海洋服务器
Ubuntu15.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 会立即重新启动)。
有人可以帮我解决这个问题吗?命令 运行 的顺序是什么?我需要修改任何其他文件吗?
您是否尝试检查 Ubuntu ( cat /var/log/boot.log
) 上的启动日志?
您可能会看到如下错误:
Error: EACCES, permission denied '/home/<USER>/.pm2'
我自己无法解决这个问题,但至少这应该为您指明了正确的方向。
I played with pm2, and found two working way for CentOS 7 (in your
project folder index.js - main file):
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
您必须使用
保存您的节点应用程序
pm2 start [app_name]
pm2 save
然后做:
pm2 startup [operation system]
这将创建一个 dump.pm2 文件,pm2 需要 运行 您的应用程序重新启动。
操作系统:
- systemd: Ubuntu >= 16, CentOS >= 7, Arch, Debian >= 7
- 暴发户:Ubuntu <= 14
- launchd:达尔文,MacOSx
- openrc:Gentoo Linux,Arch Linux
- rcd: FreeBSD
- systemv:Centos 6,亚马逊 Linux
我的解决方案是使用 systemctl 重启 pm2:systemctl reload-or-restart pm2-root
当我第一次设置 Ubuntu 18.04 服务器时,我 运行 pm2 start app.js
启动我的应用程序。然后当我尝试 运行 pm2 startup
+ pm2 save
在启动时重新启动应用程序时,这似乎不起作用,正如 运行ning systemctl list-units
, pm2没有出现在服务列表中。即使该应用程序 运行ning(pm2 list
确认)。所以我运行systemctl list-units -all
,pm2显示为“inactive”和“dead”。
所以我做到了:
systemctl status pm2-root
(只是为了确认是"inactive"/"dead")
systemctl reload-or-restart pm2-root
(通过systemctl重启pm2)
systemctl status pm2-root
(确认 pm2 现在是“活跃的”/“运行ning”)
然后我也运行systemctl enable pm2-root
,启动时启用PM2到运行(不确定是否需要)
又是pm2 startup
+ pm2 save
(开机启动)
OBS.: 我在我的命令中使用了 pm2-root
,就像我 运行ning pm2 和 root
用户一样,但是你应该替换为你的用户 (pm2-<USER>
), 如果需要的话。
在Ubuntu中得到了以下代码:
pm2 start main.js
pm2 save
pm2 startup ubuntu
请注意,“pm2 save”将在 /root/.pm2/dump.pm2 中创建一个 dump.pm2 文件,当您的机器重新启动时将使用此文件。
如果您不知道您的操作系统名称,请使用:
pm2 startup
PM2 会自动检测您的操作系统。
解决方案是:
移至安装 PM2 的文件夹(例如 /home/ubuntu)。
会有一个文件夹‘.pm2 .
运行‘pm2启动’生成一个
活动启动脚本。
运行 'PM2 save' 冻结进程列表
自动重生。’.
现在所有进程都将在 roboot 上自动启动。
我很难让 pm2 在服务器重新启动时重新启动(它本身和两个 node/express 文件,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 身份 运行ning,但它也没有用。
我的 ~/.pm2/dump.pm2
文件包含信息,因此我不确定还能在哪里查看。
我试图根据 this issue 修改我的 /etc/init.d/pm2-init.sh
文件,但没有帮助。
我的设置:
数字海洋服务器
Ubuntu15.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 会立即重新启动)。
有人可以帮我解决这个问题吗?命令 运行 的顺序是什么?我需要修改任何其他文件吗?
您是否尝试检查 Ubuntu ( cat /var/log/boot.log
) 上的启动日志?
您可能会看到如下错误:
Error: EACCES, permission denied '/home/<USER>/.pm2'
我自己无法解决这个问题,但至少这应该为您指明了正确的方向。
I played with pm2, and found two working way for CentOS 7 (in your project folder index.js - main file):
1
sudo pm2 start index.js sudo pm2 save sudo pm2 startup centos2
pm2 start index.js pm2 save pm2 startup centos '# and run the script generated in the previous code under sudo
您必须使用
保存您的节点应用程序 pm2 start [app_name]
pm2 save
然后做:
pm2 startup [operation system]
这将创建一个 dump.pm2 文件,pm2 需要 运行 您的应用程序重新启动。
操作系统:
- systemd: Ubuntu >= 16, CentOS >= 7, Arch, Debian >= 7
- 暴发户:Ubuntu <= 14
- launchd:达尔文,MacOSx
- openrc:Gentoo Linux,Arch Linux
- rcd: FreeBSD
- systemv:Centos 6,亚马逊 Linux
我的解决方案是使用 systemctl 重启 pm2:systemctl reload-or-restart pm2-root
当我第一次设置 Ubuntu 18.04 服务器时,我 运行 pm2 start app.js
启动我的应用程序。然后当我尝试 运行 pm2 startup
+ pm2 save
在启动时重新启动应用程序时,这似乎不起作用,正如 运行ning systemctl list-units
, pm2没有出现在服务列表中。即使该应用程序 运行ning(pm2 list
确认)。所以我运行systemctl list-units -all
,pm2显示为“inactive”和“dead”。
所以我做到了:
systemctl status pm2-root
(只是为了确认是"inactive"/"dead")systemctl reload-or-restart pm2-root
(通过systemctl重启pm2)systemctl status pm2-root
(确认 pm2 现在是“活跃的”/“运行ning”)然后我也运行
systemctl enable pm2-root
,启动时启用PM2到运行(不确定是否需要)又是
pm2 startup
+pm2 save
(开机启动)
OBS.: 我在我的命令中使用了 pm2-root
,就像我 运行ning pm2 和 root
用户一样,但是你应该替换为你的用户 (pm2-<USER>
), 如果需要的话。
在Ubuntu中得到了以下代码:
pm2 start main.js
pm2 save
pm2 startup ubuntu
请注意,“pm2 save”将在 /root/.pm2/dump.pm2 中创建一个 dump.pm2 文件,当您的机器重新启动时将使用此文件。
如果您不知道您的操作系统名称,请使用:
pm2 startup
PM2 会自动检测您的操作系统。
解决方案是:
移至安装 PM2 的文件夹(例如 /home/ubuntu)。 会有一个文件夹‘.pm2 .
运行‘pm2启动’生成一个 活动启动脚本。
运行 'PM2 save' 冻结进程列表 自动重生。’.
现在所有进程都将在 roboot 上自动启动。