closuresterminal后的Web服务器

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

有用。 但是,如果我closuresterminal,networking服务器终止。 我该如何解决这个问题?

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

 nohup your_server & 

这足以进行testing。 如果你正在寻找一个稳定的生产解决scheme,那么你将不得不制定脚本。

你也可以使用屏幕。 要安装它

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

(我认为)。

然后,使用创build一个新的屏幕

 screen -S nodeserver 

(把nodeserverreplace成你想给屏幕的名字,不要留下这个空白!把这个空白留空很难closures)。

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

Ctrl + a

d

离开屏幕。 屏幕将继续在后台运行,不会断开连接。 这个好处是,你以后可以使用重新连接到屏幕

 screen -r nodeserver 

(看看为什么我说让它难忘?否则,它将被分配一个随机数,这是很难使用,但可以发现抛出使用screen -list

所以,如果出现任何错误,或者你logging了某些东西,那么所有这些信息仍然是可用的。 请注意,如果您使用ssh,屏幕并不总是很好玩。

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

 screen -S nodeserver -X quit 

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