-
screen,场景,它存在的意义是将执行的工作转给计算机去监督,而不需要再人为值守。
经常使用putty类工具的人应该会有下面这样的感受:
1:正在ssh中执行某些命令,突然本地电脑断网了,putty窗口自然也就断开了,这时刚刚执行的命令还没有返回结果,就已经掉线,不得不重新登录ssh,重新执行命令。
2:正在执行一个很长时间才能返回结果的命令,例如打包某个大型目录,可能需要近一个小时,而putty窗口默认情况下如果30分钟没有任何指令发送的情况下,会自动断开,那怎么办呢,如果一小时才能打包完,半小时就掉线的话,总不能每30分钟内去敲一些无关紧要的字符让putty窗口接受响应吧,这时screen就能帮上忙了
3:正在执行某些需要较长时间去运行的指令,例如安装lnmp一键包,这时,老婆喊你去给孩子换尿片,也许两个小时你都无法回到电脑前,总不能之前在执行的东西就这么不管它了吧喂?要有始有终啊喂!解决这些问题的办法就是:screen 命令
-
screen -S name 创建screen窗口:例如:screen -S zip
(name是自定义的场景名,建议定义时与工作内容关联,例如该screen场景是用来执行zip打包的,那么取名为zip)root@localhost ~]# screen -S zip 执行后就会进入到screen窗口了,screen窗口和默认的ssh本身的窗口使用上没有任何区别。
-
screen -ls 列出正存在screen窗口
(列出正存在的screen窗口,可以帮助使用者回忆起自己创建的screen场景名称等信息)root@localhost ~]# screen -ls There is a screen on: 29058.zip (Detached) 1 Socket in /var/run/screen/S-root. 表示当前一个screen场景,其进程号是 29058,名称是 zip
-
screen -r name 或 screen -r pid进程号 恢复至对应的screen任务视窗
(如果网络断开造成putty中断,只要此前已创建了screen,那么就可以通过该方法恢复到之前的screen视窗,且你会发现screen中的工作任务仍然还在进行,并没有因为操作者对ssh的掉线或断开而中止工作任务)root@localhost ~]# screen -r zip
或
root@localhost ~]# screen -r 29058
-
Ctrl + a ⇒ d 暂时退出当前screen视窗,但不中止screen中任务的运行,使用方法:先按住Ctrl+a键,再按d键,即可回到默认ssh视窗。
(screen中的任务通常是执行时间很长的任务,所以往往我们等不及它的完成,就需要去执行一些其它命令,但总不能每次都重新打开putty软件再登录一次ssh,虽然这样也可以,但可以用这个更简单的办法解决)
-
exit 退出命令,这在linux中是通用命令,不多介绍了。
-