1

我有一个 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

有用。但是如果我关闭终端,网络服务器就会终止。我该如何解决这个问题?

4

2 回答 2

1

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

nohup your_server &

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

于 2013-10-18T16:45:37.200 回答
0

您也可以使用屏幕。安装它

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

(我认为)。

然后,使用创建一个新屏幕

screen -S nodeserver

(将 nodeserver 替换为您想给屏幕提供的任何名称。不要留空!。留空会使它难以关闭)。

使用屏幕后,它就像自己的终端一样。因此,只需从那里启动您的服务器。然后,按

Ctrl+a

d

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

screen -r nodeserver

(明白我为什么说要让它记住吗?否则,它会被分配一个随机数,这更难使用但可以找到 throw using screen -list

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

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

screen -S nodeserver -X quit

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

于 2013-11-07T04:12:18.490 回答