Nodejs nohup没有异常死亡

Lee*_*Lee 10 javascript http nohup node.js

我正在编写我的第一个NodeJS应用程序,但出于某种原因,它似乎在很短的时间后意外死亡.我不知道是什么原因造成的.该过程运行良好,甚至按预期工作,然后由于某种原因它只是停止.nohup日志不显示错误或任何反馈.

我试过在调试模式下运行它,但它是相同的,没有信息.跟踪没有帮助.

我通过nohup运行这个过程:

nohup node app.js &
Run Code Online (Sandbox Code Playgroud)

码:

var http = require('http');
var server = http.createServer().listen(8000);
var io = require('socket.io').listen(server);
var cookie_reader = require('cookie');
var querystring = require('querystring');

// Store the session cookie set by Django
io.configure(function(){
    io.set('authorization', function(data, accept){
        if(data.headers.cookie){
            data.cookie = cookie_reader.parse(data.headers.cookie);
            return accept(null, true);
        }
        return accept('error', false);
    });
    io.set('log level', 1);
});

io.sockets.on('connection', function (socket) {
    socket.on('shoutbox_send', function(message){

        values = querystring.stringify({
            comment: message,
            sessionid: socket.handshake.cookie['sessionid'],
        });

        try {
            var options = {
                host: 'www.example.com',
                port: 80,
                path: '/shoutbox/node_api',
                method: 'POST',
                headers: {
                    'Content-Type': 'application/x-www-form-urlencoded',
                    'Content-Length': values.length
                }
            };

            var req = http.get(options, function(res){
                res.setEncoding('utf8');
                res.on('data', function(message){
                    socket.emit('shoutbox_receive', message);
                    socket.broadcast.emit('shoutbox_receive', message);
                });
            });

            req.write(values);
            req.end();
        } catch (err) {
            console.log(err);
            socket.emit('shoutbox_receive', err);
        }

    });
});
Run Code Online (Sandbox Code Playgroud)

提前致谢,

ilm*_*tic 1

如果您使用Forever.js运行您的应用程序,它将产生 2 个可能对您有帮助的效果:

(1) 当你的应用程序终止时,它会自动重启你的应用程序

(2) 它应该给你一个退出消息,例如

warn: Forever detected script exited with code: [EXIT CODE]
Run Code Online (Sandbox Code Playgroud)

这应该可以更容易地追踪问题