关闭终端后的Web服务器

时间:2013-10-18 16:43:21

标签: linux node.js webserver

我有一个linux服务器(ubuntu)并安装了node.js.

我的脚本:webserver.js:

var http = require('http');
http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(80);
console.log('Server is running');

我用putty启动服务器脚本连接到服务器: node webserver.js

有效。但是,如果我关闭终端,则会终止Web服务器。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

最简单的方法是在后台使用nohup启动它:

nohup your_server &

这足以进行测试。如果您正在寻找稳定的生产解决方案,那么您将不得不对该脚本进行大恶化。

答案 1 :(得分:0)

你也可以使用屏幕。 安装

apt-get update && apt-get install -yf screen

(我想)。

然后,使用

创建一个新屏幕
screen -S nodeserver

(将nodeserver替换为你想要给屏幕的任何名称。不要放弃这个空白!将此留空是很难关闭的。)

使用屏幕后,它就像自己的终端一样。所以,开始吧 服务器从那里。然后,按

Ctrl + a

d

离开屏幕。屏幕将继续在后台运行,不会断开连接。这样做的好处是您可以稍后使用

重新连接到屏幕
screen -r nodeserver

(请问为什么我说要让它变得难忘?否则,它会被分配一个随机数,这个数字很难使用,但可以使用screen -list发现)

因此,如果抛出任何错误,或者您记录了某些内容,那么所有这些信息仍然可用。请注意,如果您使用ssh,屏幕并不总是很好。

如果由于某种原因屏幕冻结,那么这是一个问题,但我认为您可以使用

修复它
screen -S nodeserver -X quit

或类似的东西(其他人,如果这是错误的话,请随时更改)。