Screen
最近进度被卡,无奈就写写这段时间遇到的一个不错的工具Screen。我用到它的情景是我需要到实验室的集群上去跑数据,由于数据规模很大,执行往往需要一整天或者是一晚上的时间,以前我只是ssh过去并直接执行任务,但是这样有很多不便,比如你的电脑要保持开机,因为如果ssh连接断开,那么你正在执行的程序就会被kill掉,而且实验室的路由器总是闹脾气,运气不好的时候网断了以后你的任务执行到一半就比较麻烦了。这个时候就找到了Screen这个工具。你可以通过Screen创建一个session,并在其中执行你的程序,你需要离开的时候就将这个会话detach,这样就可以让你正在运行的程序继续运行,当你回来以后你可以继续看你的程序运行到了什么情况。就好比是把你的程序放到了后台执行,当你需要查看的时候又可以接着查看很是方便。
Screen中可以有多个会话,每个会话可以有多个窗口,当你创建一个会话的时候,默认会创建并处于0号窗口。
screen -S SessionName
用SessionName来创建一个会话,不加-S也是可以直接创建一个会话,但是建议还是加上,这样可以方便你对会话的管理,在以后恢复到这个会话的时候可以直接使用SessionName,不用再查看编号。
screen -ls
用来查看当前有什么样子的会话,显示的结果有会话的名字和ID
screen -r SessionName/SessionID
用来恢复到之前的会话
当你要脱离一个会话并保持会话内的程序继续执行的话你可以使用Ctrl + a + d来脱离当前会话,当你要关闭并脱离当前会话的话,你可以使用exit,或者Ctrl + a + k 来结束会话。
至于会话内多窗口,以及共享会话等细节可以参见这篇博客:http://www.cnblogs.com/mchina/archive/2013/01/30/2880680.html