最近开始对一些常用的命令和组件做一些笔记,方便自己需要的时候查找,今天赵容要记录的是screen命令。
screen是一个可以在多个进程之间多路复用一个物理终端的全屏窗口管理器,我们可以建立多个会话并保持连接和运行。举一个简单的例子,比如,我们在编译lnmp0.9的过程中,电脑需要关机什么办?网络突然断开怎么办?只能前功尽弃彻底重来?No!这时候,使用screen就可以解决这些烦恼。
一、安装screen
我们以安装CentOS系统的VPS为例,赵容手头的VPS有些系统已经自带了screen,有些需要安装。
yum install screen #安装screen
安装很快,一般就是1分钟吧,之后,我们就可以使用它了。
下面,我们记录一些常用的screen命令。
二、创建远程会话
以编辑lnmp为例,首先,我们建立一个screen会话窗口,将这个窗口的名称定义为lnmp
screen –S lnmp
执行以上命令回车,自动进入新的lnmp的会话窗口
我们可以在这个会话窗口,开始编译lnmp的过程,比如下载脚本,解压,运行安装。
三、暂离会话
在正式编译lnmp之后,我们知道,这个过程需要较长的时候,短则十几分钟,长则数小时,这时候,我们能够离开这个窗口,但是正在运行的东西不会终止。
按住Ctrl,然后依次按键盘上的a,d,则暂时离开这个会话窗口,返回主会话。我们可以退出,或者做其他的事情,不会影响到之前的编译过程。
四、重返会话
我刚说了,我们建立了一个lnmp编译的会话窗口,假如我们已经退出ssh登陆,那么重新登陆上去,直接运行命令重返刚才的会话。
screen –r
上面,是我只建立了那么一个会话,假设我们建立了多个会话,我们可以通过直接通过加上会话窗口的名字,或者ID的方式进入指定会话。
screen –r lnmp #进入以lnmp命名的会话
screen ls #列出会话ID
screen –r **** #****代表ID号码,直接进入该ID会话
五、其他命令
screen在后台运行,还是需要消耗一定的系统资源的,在任何时候,一个会话窗口的工作完成后,我们以命令exit退出(彻底关闭)该会话,另外,当多个会话时,一些其他的命令可以帮助我们。
Ctrl + a,d #暂离当前会话
Ctrl + a,c #在当前screen会话中创建一个子会话
Ctrl + a,w #子会话列表
Ctrl + a,p #上一个子会话
Ctrl + a,n #下一个子会话
Ctrl + a,0-9 #在第0窗口至第9子会话间切换
总之,screen命令对于我们在linux VPS使用中是非常有帮助的,尤其是新手朋友使用它,会话多开同步进行不同的工作,可以节省不少时间。
【更新】增加一个报错的解决方案,我在使用的过程中遇到过两次,报错为Directory ‘/var/run/screen’ must have mode 777.
遇到此问题,请执行:chmod g+s /usr/bin/screen