Max*_*Max 6 ubuntu pm2 ubuntu-14.04
我正在使用pm2来启动node.js进程,我希望在系统(Intel Atom处理器上的Ubuntu 14.04)启动时自动启动此进程.我按照pm2网站上的说明操作但没有成功.我的dump.pm2似乎是正确的,但pm2守护程序永远不会启动.无论有没有指定用户,我都尝试了ubuntu和linux选项pm2 startup,以及自动检测.文件(链接)S20pm2-init.sh已创建,/etc/rc[2-5].d但没有任何开始.我在系统日志中找不到任何明显的错误消息.
有任何想法吗?
编辑添加
我发现
service pm2-init.sh start从我的登录帐户运行时正确启动守护程序,这USER=与文件中定义的相同/etc/init.d/pm2-init.sh.我已经确保PM2_HOME此文件中的定义也指向正确的位置.但是,它仍然无法在系统启动时启动!
在 Ubuntu 上哪些步骤对我有用 18.04.4
npm i pm2 -gpm2 startup
pm2-root在以下位置找到的服务/etc/systemd/systemsystemctl enable pm2-root, service pm2-root status
pm2 unstartup, pm2 startup; 文件pm2 start dist\index.js --name YourNodeApppm2 saverebootpm2 ls应该显示您的YourNodeApp在线嗯,无论如何,我认为这有效。我最初尝试以系统用户(无登录 shell)启动,称为node-red运行同名的节点应用程序,当这不起作用时,我尝试以普通用户启动max。经过一番摆弄后,它突然开始工作,但在这个缓慢的 Atom 处理器上,节点应用程序仅在桌面出现几分钟后启动。
要让它在系统用户下运行:首先,以 身份登录max,我删除了所有 pm2 作业并运行pm2 save以创建一个空转储文件。然后我做了:
sudo npm install pm2@latest -g
pm2 update
Run Code Online (Sandbox Code Playgroud)
获取最新版本,以防有帮助。我从 0.14.7 移至 0.15.7
然后我跑了
sudo su -c "env PATH=$PATH:/usr/bin pm2 startup ubuntu -u node-red"
Run Code Online (Sandbox Code Playgroud)
并编辑/etc/init.d/pm2-init.sh更正将目录设置PM2_HOME为主目录的行node-red:
export PM2_HOME="/home/node-red/.pm2"
Run Code Online (Sandbox Code Playgroud)
然后我成为该用户的登录版本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
Run Code Online (Sandbox Code Playgroud)
然后我退出 的node-redshell,重新启动,并且(大约一分钟的延迟后)应用程序运行良好!
请注意,这是 ubuntu 14.04,它使用init/upstart系统。我认为以后的版本使用systemd方法,并且可能需要在创建启动脚本时将ubuntu参数更改为。systemd
不过,我仍然不太确定为什么它第一次不能正常工作。
| 归档时间: |
|
| 查看次数: |
8561 次 |
| 最近记录: |