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



我使用pm2来启动node.js进程,我希望这个进程在系统(Ubuntu 14.04 on Intel Atom处理器)启动时自动启动。我已经按照pm2网站上的说明进行了操作,但没有成功。我的转储。Pm2似乎是正确的,但是Pm2守护进程从未启动。我已经尝试了ubuntulinux选项到pm2 startup,以及自动检测,无论是否有指定用户。文件(链接)S20pm2-init.sh已在/etc/rc[2-5].d中创建,但没有开始。我在系统日志中找不到任何明显的错误信息。

任何想法?

编辑添加

我发现当从我的登录帐户运行时,service pm2-init.sh start正确地启动守护进程,这与文件/etc/init.d/pm2-init.shUSER=所定义的相同。我已经确保这个文件中的PM2_HOME定义也指向正确的位置。然而,它仍然没有在系统启动时启动!

要使pm2启动工作,文档中有一个关键命令。

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

Ubuntu 18.04.4有哪些步骤适合我

  1. npm i pm2 -g
  2. 以root用户pm2 startup运行此命令
    • 创建/etc/systemd/system
    • 中的服务pm2-root
  3. systemctl enable pm2-root, service pm2-root status
    • :节点升级后,以root身份执行以下命令:pm2 unstartup, pm2 startup;文档
  4. pm2 start distindex.js --name YourNodeApp
  5. pm2 save
  6. reboot
  7. pm2 ls应该显示你的YourNodeApp在线

好吧,我认为这是有效的,无论如何。我最初试图以一个名为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

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

基本上,

步骤1:执行以下命令,

pm2 startup

在这里你将得到一个命令生成,copy/paste它和完成。

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

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

在执行pm2后保存

    //init.d/pm2-init.sh
  1. 然后在cron选项卡上@reboot root/etc/init.d/pm2-init.sh start这相当于在cmd下执行,但在重启时触发

现在运行正常

相关内容

  • 没有找到相关文章

最新更新