发现一个比 nohup 更好处理后台任务的工具 screen

      生活锁事 2009-8-2 23:42

大家在起后台服务,或者长时间执行某个脚本的时候。

是不是感觉,交互性很差,
有时,想把结果直接在终端上输出,又怕不小心关闭了终端导致进程退出? (有些sshd服务还会设置连接超时,自动退出终端)

现在用 screen 这个指令可以很好的解决跑后台服务的尴尬。

命令其实超简单的:

直接在终端上输入 screen , 这个时候,服务器端会启一个新的终端,但这个终端,与之前的普通终端不一样,它不隶属于 sshd 进程组,这样,当本地终端关闭后,服务器终端不会被 kill。

当然,优点还不止这么些,在服务器终端里执行任务时,你甚至可以随时地切换到本地终端做些其他事情,然后,要回去时,再恢复到刚才已经打开的服务器终端里,如果刚才的任务没有结束,还可以继续执行任务。

操作步骤:
首先,进入 screen -S sessionname终端。(sessionname是为了分辨你的session)
然后按 ctrl + a ,再按 d 键暂时退出终端。
当要返回时, 先查看刚才的终端进程ID, screen -list
或直接
screen -r xx (刚才的sessionname)就可以了
当然,当你开了很多个session后,打算关闭几个session,可以进入到session后,exit 一下就可以了.

总的来说, screen是可以完全替代 nohup 的,并且本身提供了较复杂的功能,但是我认为,刚才那些简单的功能足以应付日常运作。

转处:http://kenwu.me/screen-a-more-useful-backend-tool
资料:
http://www.ibm.com/developerworks/cn/linux/l-cn-screen/
 

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}