2015-09-25 70 views
3

玉家伙,PM2 - 自动启动上Raspbian(树莓派)不工作

这是推动我坚果......不能让我的应用程序的NodeJS到自动启动开机@在树莓派...

机器:Raspberry 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,但也不能工作。

问候,

萨沙

+0

您是否使用sudo安装pm2? – Mia

+0

sudo npm install -g pm2 – Mia

+0

我有类似的问题 - 想知道你是否设法解决你的问题。 – Mia

回答

10

米娅的评论让我再次检查PM2的问题列表,有人想出如何做到这一点!:)

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

解决办法:

sudo pm2 startup systemd -u <username> 

就像一个魅力! :)

萨沙

+3

这是我:)我很高兴它帮助。 – Mia

+0

这适用于我在树莓派3! –

1

我还搜查了好几天都没有成功,但随后, 我得到了它的很简单的工作。


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

您的Java应用程序重新启动后,应运行

+0

Java?我错过了什么吗? – Dodekeract

2

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

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

--hp /home/pi部分似乎是差异。这是我发现许多解决方案中没有的解决方案。

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. 重新启动,进入您的网站(并查看日期;确保它不是浏览器缓存的)