我有一个nodejs程序,运行了几个月(在Ubuntu 16.04.2 LTS上)永远https://www.npmjs.com/package/forever。我没有问题(我有节点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以来,永远不再有用了。
现在我怎样才能永远运行我的应用程序?
提前谢谢
答案 0 :(得分:0)
我猜我破了包裹。我重新安装了所有内容:npm,nodejs ...我在此之后升级了我的nodejs:https://askubuntu.com/a/548776所以我输入了
<!DOCTYPE html>
<html>
<head>
<base target="_top">
<script src="https://unpkg.com/react@16/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js"></script>
<script src="https://unpkg.com/babel-standalone@6.15.0/babel.min.js"></script>
</head>
<body id="root">
<script type="text/babel">
ReactDOM.render(<h1>Hello, world!</h1>, document.getElementById('root'));
</script>
</body>
</html>
由于某些原因,我必须永远使用sudo,所以我输入
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs
获取列表和
sudo forever list
永远启动我的应用程序。在这两种情况下,不要忘记使用sudo,否则会让人感到困惑。希望有一天能帮助别人。