Joe*_*phy 8 ubuntu upstart node.js forever
我终于完成了将我的一个项目转换为使用Node.JS,但现在我在服务器上运行我的应用程序时出现问题:/问题是如果我关闭我的putty会话节点就停止了.
我已经做了很多关于这个问题的搜索,似乎创建一个upstart
脚本并使用该Forever
模块是要走的路.
我开始谷歌搜索并创建了这个新贵脚本:
#!upstart
description "Loner NodeJS app launcher"
author "me@me.com"
start on startup
stop on shutdown
script
export HOME="/root"
exec sudo node /home/jjmpsp/server.js >> /home/jjmpsp/server.sys.log 2>&1
end script
Run Code Online (Sandbox Code Playgroud)
然后我start app
昨晚在服务器上运行,当我关闭putty会话时服务器仍在运行.都好.
但是,我今天早上来了,发现Node应用已停止,所以我检查了server.sys.log
文件,看看发生了什么.似乎该应用程序运行良好,直到它最终遇到此异常:
debug: client authorized
info: handshake authorized fziLHZA3Vo9i55eubvOq
events.js:48
throw arguments[1]; // Unhandled 'error' event
^
Error: Connection lost: The server closed the connection.
at Protocol.end (/home/jjmpsp/node_modules/mysql/lib/protocol/Protocol.js:73:13)
at Socket.onend (stream.js:80:10)
at Socket.emit (events.js:88:20)
at TCP.onread (net.js:348:51)
Run Code Online (Sandbox Code Playgroud)
今天我一直在谷歌搜索更多,并发现Forever实际上会重新启动NodeJS应用程序,如果它意外退出.我尝试安装模块npm install forever
但是我得到了这个巨大的错误列表:
jjmpsp@alex:~$ npm install forever
npm ERR! error installing forever@0.9.2 Error: No compatible version found: node-fork@'>=0.4.0- <0.5.0-'
npm ERR! error installing forever@0.9.2 No valid targets found.
npm ERR! error installing forever@0.9.2 Perhaps not compatible with your version of node?
npm ERR! error installing forever@0.9.2 at installTargetsError (/usr/local/lib/node_modules/npm/lib/cache.js:424:10)
npm ERR! error installing forever@0.9.2 at /usr/local/lib/node_modules/npm/lib/cache.js:406:17
npm ERR! error installing forever@0.9.2 at saved (/usr/local/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:136:7)
npm ERR! error installing forever@0.9.2 at Object.cb [as oncomplete] (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:36:9)
npm ERR! Error: No compatible version found: node-fork@'>=0.4.0- <0.5.0-'
npm ERR! No valid targets found.
npm ERR! Perhaps not compatible with your version of node?
npm ERR! at installTargetsError (/usr/local/lib/node_modules/npm/lib/cache.js:424:10)
npm ERR! at /usr/local/lib/node_modules/npm/lib/cache.js:406:17
npm ERR! at saved (/usr/local/lib/node_modules/npm/lib/utils/npm-registry-client/get.js:136:7)
npm ERR! at Object.cb [as oncomplete] (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:36:9)
npm ERR! Report this *entire* log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR!
npm ERR! System Linux 3.8.4-x86_64-linode31
npm ERR! command "node" "/usr/local/bin/npm" "install" "forever"
npm ERR! cwd /home/jjmpsp
npm ERR! node -v v0.5.11-pre
npm ERR! npm -v 1.0.106
npm ERR! Error: EACCESS, Permission denied 'npm-debug.log'
npm ERR! Report this *entire* log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR!
npm ERR! System Linux 3.8.4-x86_64-linode31
npm ERR! command "node" "/usr/local/bin/npm" "install" "forever"
npm ERR! cwd /home/jjmpsp
npm ERR! node -v v0.5.11-pre
npm ERR! npm -v 1.0.106
npm ERR! path npm-debug.log
npm ERR! code EACCESS
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/jjmpsp/npm-debug.log
npm not ok
Run Code Online (Sandbox Code Playgroud)
我应该采取什么措施来解决这个问题?我完全没有想法.我一直在谷歌搜索各种技术细节,我只是没有到达任何地方.
任何帮助是极大的赞赏 :)
首先,您应该关注杀死节点服务器的内容.永远不会"解决"问题.每次节点退出/重新启动时都会导致问题,您的用户可能会丢失数据.upstart
或者forever
只是创可贴.(实际上,Upstart会重新启动你的服务器,但是如果你的服务器没有继续运行它会放弃.)
查找/修复每个错误源的唯一长期解决方案,并编写回归测试套件以验证每个先前的问题是否已得到修复.
start on startup
不管用
您的forever
安装因权限而中断.尝试sudo npm install -g forever
高级:您的整个服务器设置应该编写脚本.这样您就可以设置一个镜像生产的测试/临时服务器.一个简单的方法就是Vagrant.您可以在服务器上的同一操作系统上"本地"开发.你可以测试一下" node
重启时会出现什么问题吗?" 或"如果服务器被清除,我可以从基础操作系统重新创建我的服务器吗?"
经过几个小时的重新配置后,我想我终于解决了我的问题!看起来我可能有2个版本的节点或东西!供将来参考:如果您是Node新手,请确保安装nvm
以简化管理节点版本,您将不会遇到此问题:)
归档时间: |
|
查看次数: |
7728 次 |
最近记录: |