2011-07-18 14 views
0

EC2にログオンして「node server.js」コマンドで起動すると、NodeJSとNowJSをEC2上にメッセージングサーバーとして配置しました。私がバックグラウンドで起動し、コマンド "node server.js &> node.out"でEC2からログアウトすると、EC2のNodeJsとNowJsとの接続が切断されます

Sometime Jetty(Webserver)はNowJsに接続できません。私はなぜそれが起こったのか分からない、私は何かを逃している?

これは私のコードです。

 

var http = require('http'); 
var httpServer = http.createServer(function (req, res) { 
    res.writeHead(200, {'Content-Type': 'text/plain'}); 
    res.end('Hello World\n'); 
}); 

httpServer.listen(3000); 

var nowjs = require("now"); 
var everyone = nowjs.initialize(httpServer); 
everyone.now.distributeMessage = function(ids, message){ 
    everyone.now.receiveMessage(ids, message); 
}; 
 

ところで私はまだEC2上で放火魔にhttp://localhost:3000/nowjs/now.jsを見ることができますが、私はeveryone.now.distributeMessageを呼び出すとき。私はそれが定義されていないと言っているエラーを持っています。しかし、私がEC2にログオンしてサーバーを再起動すると、正常に動作します。

+0

ファイル名を指定して実行 "ノードserver.js" としばらくのためのオープンあなたの窓を残す:

はこれを試してみてください。長い間、いつものようにサーバーを稼働させてください。そうすれば、node.jsがクラッシュすると、エラーとバックトレースを見ることができます。 –

+0

stacktraceからのエラーは表示されません。しかし、私のWebサーバは、everyone.now.distributeMessageがいつかは未定義であるというエラーをスローします。 : – toy

+0

この投稿は私に役立ちますhttp://blog.nodejitsu.com/keep-a-nodejs-server-up-with-forever – toy

答えて

0

プロセスに指定したコマンドがユーザーのsshセッションで実行されています。あなたがログアウトすると、セッションがなくなります。 nohupを使用するのと同じくらい簡単になる可能性があります。

nohup node server.js & > node.out 
関連する問題