PM2 - Raspbian上的自动启动(Raspberry Pi)不起作用

问题描述 投票:3回答:4

好,朋友们,

这让我疯了......无法让我的nodejs应用程序在覆盆子pi上自动启动@boot ...

机器:覆盆子2(Raspbian Jessie)

尝试了我在Google上找到的几乎所有可能的解决方案。

这就是我最终得到的结果:

安装pm2

$ sudo npm install -g pm2

这将安装为init.d脚本并以pi用户身份运行应用程序

$ sudo pm2 startup raspberry -u pi
[PM2] Generating system init script in /etc/init.d/pm2-init.sh
[PM2] Making script booting at startup...
[PM2] -raspberry- Using the command:
  su -c "chmod +x /etc/init.d/pm2-init.sh && update-rc.d pm2-init.sh defaults"
[PM2] Done.

我已经读过脚本引用了错误的.pm2文件夹(看起来在根文件夹中,而不是用户的文件夹中)所以我改变了

 $ sudo vi /etc/init.d/pm2-init.sh

export PM2_HOME="/root/.pm2"改为export PM2_HOME="/home/pi/.pm2"

$ cd /opt/mycoolnodeproject

用pm2启动我的节点项目

$ pm2 start server.js -x --name "node-project"

保存活动进程,以便在重新启动时重新启动它们(如果pi崩溃,它会自动将其保存在关闭状态)

$ pm2 dump

所以现在服务器启动并运行正常......直到我重新启动!我以为pm2会自动启动我的节点应用程序但由于某种原因它不会...... :(

知道问题可能是什么?

顺便说一下:我也试着像这个sudo env PATH=$PATH:/usr/local/bin pm2 startup raspberry -u pi一样打电话给创业公司,但那也没办法。

问候,

萨沙

node.js raspberry-pi raspbian autostart pm2
4个回答
13
投票

Mia的评论让我再次检查了PM2的问题列表,有人想出了怎么做! :)

https://github.com/Unitech/pm2/issues/1654

解决方案:

sudo pm2 startup systemd -u <username>

奇迹般有效! :)

萨沙


4
投票

我能够使用此命令在我的RPi上正确启动PM2启动:

sudo env PATH=$PATH:/usr/local/bin pm2 startup systemd -u pi --hp /home/pi

--hp /home/pi部分似乎是不同的。这就是我发现无法解决的许多解决方案中遗漏的问题。


1
投票

我也搜索了几天没有成功,但后来,我让它很简单地工作。


  1. 在Raspian中单击“菜单”,“首选项”,“主菜单编辑器”
  2. 单击“首选项”并选中“LXSession的默认应用程序”
  3. 单击确定并关闭主菜单编辑器
  4. 现在单击“菜单”,在“首选项”下单击“LXSession的默认应用程序”
  5. LXSession配置打开
  6. 单击“自动启动”
  7. 在手动自动启动的应用程序下粘贴您的java命令行
  8. 点击添加
  9. 关闭LXSession配置应用程序并重启你的pi

你的java应用程序应该在重启后运行


0
投票

这是基于this article的解决方法(建议的解决方法对我没有帮助):

  1. 制作一个迷你启动init.d脚本来自己复活pm2进程 #! /bin/sh # /etc/init.d/pm2 # # help documentation: #https://debian-administration.org/article/28/Making_scripts_run_at_boot_time_with_Debian pm2 resurrect
  2. 让它可执行 chmod 755 /etc/init.d/blah
  3. 更新系统符号链接 update-rc.d pm2 defaults
  4. 重新启动,转到您的网站(并查看日期;确保它不是缓存浏览器)
© www.soinside.com 2019 - 2024. All rights reserved.