javascript - Nodejs nohup 死机无一异常(exception)

标签 javascript node.js http nohup

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

我试过在 Debug模式下运行它,但它是一样的,没有信息。跟踪没有帮助。

我通过 nohup 运行进程:

nohup node app.js &

代码:

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);
        }

    });
});

提前致谢,

最佳答案

我遇到了类似的问题(但不知道是否有共同的原因)

解决方案:

  1. ssh 到服务器
  2. 正常运行 nohup node app.js &
  3. Ctrl+c 退出 nohup
  4. 优雅地退出 ssh,即通过 exit 命令,而不是仅仅关闭终端。

最后一点很重要,我没有正确退出 ssh,因此它被杀死了。

关于javascript - Nodejs nohup 死机无一异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18042283/

相关文章:

javascript - 从 javascript 函数添加/删除 jQuery 选项卡

c - 此 C 代码仅获取 HTTP header ,但不是 html 文件

javascript - 如何使用javascript多次访问一个页面?

javascript - 尝试在主屏幕网络应用程序中访问 ics 文件时出现“无法下载此文件”

javascript - 使用 Node.js HTTP 服务器获取和设置单个 Cookie

javascript - 将数据帧从 python 发送到 node.js 应用程序

javascript - NodeJS 和异步 hell

node.js - 使用 Node.js 的单独索引表从 dynamodb 表获取项目

node.js - BodyPix - 在 node.js 中运行 toMask() 和 toColoredPartMask() 会引发错误 : ImageData is not defined

HTTP header : Controlling Cache and History Mechanism