我有一个nodejs程序,运行了几个月以来永远https://www.npmjs.com/package/forever(在Ubuntu 16.04.2 LTS上)。我没有问题(我有节点v6.11.1)。 但我最近想使用一个名为瓶颈的软件包,由于某些原因(因为异步语法错误)我想更新我的nodejs。 所以我按照他的提示updating nodejs on ubuntu 16.04(问题即将来临),我执行了:
sudo npm install -g n
sudo n lts
我注意到我的应用已停止在forever list
。所以运行:
forever start -o out.log -e err.log app.js
但我的应用程序仍然在forever list
停止,没有运行app.js任务(用htop检查)。我检查err.log,我发现此错误消息:
Error: listen EACCES 0.0.0.0:80
at Object.exports._errnoException (util.js:1018:11)
at exports._exceptionWithHostPort (util.js:1041:20)
at Server._listen2 (net.js:1245:19)
at listen (net.js:1294:10)
at Server.listen (net.js:1390:5)
at Object.<anonymous> (/home/esu/pixelland006/app.js:35:6)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
我尝试了不同的版本,但没有。它仍然无法正常工作。所以我运行sudo n 6.11.1
回到v6.11.1并且我卸载了n。我搜查了一下,发现这可能是一个特权问题。现在我使用nmv而不是n它仍然不起作用,我的应用程序仍然在forever list
被阻止。
但是当我跑步时,我注意到一些非常奇怪的东西:
forever start -o out.log -e err.log app.js
我的应用程序在forever list
中被阻止,并且没有运行app.js任务(使用htop检查),但是当我这样做时:
sudo forever start -o out.log -e err.log app.js
永远告诉我,我的应用程序在forever list
被阻止,但我看到我的app.js任务正在运行。
它工作了几个月,但自从我尝试更新nodejs后,永远不再起作用了。
现在我怎么能永远运行我的应用程序? 先感谢您
我想我破了包裹。我重新安装了所有东西:npm,nodejs ...我在此之后升级了我的nodejs:https://askubuntu.com/a/548776所以我输入了
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
现在由于某些原因,我必须永远使用sudo,所以我输入
sudo forever list
得到清单和
sudo forever start -o out.log -e err.log app.js
永远开始我的应用程序。在这两种情况下都不要忘记使用sudo,否则会让人感到困惑。希望有一天能帮助别人。