当前位置: 首页>后端>正文

screen 工具介绍

screen这个工具,不是很常用,但是在你做一些耗时的操作时,就非常有用了,之前用两天,过一阵就又忘了,再用还是要百度它的用法。想想还是自己总结下文档吧!

我们经常需要SSH远程登录到Linux 服务器,经常运行一些需要很长时间才能完成的任务,比如系统备份、ftp 传输等等。通常情况下我们都是为每一个这样的任务开一个远程终端窗口,因为它们执行的时间太长了。必须等待它们执行完毕,在此期间不能关掉窗口或者断开连接,否则这个任务就会被杀掉,一切半途而废了。此时,screen命令就出现了。

只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。

安装screen

$ yum -y install screen 

screen指令常用选项

创建新会话

$ screen -R session_name           # 其中session_name是你定义的会话名称
$ screen -S session_name 

退出当前会话
如果只是退出当前会话,但会话中的指令还在运行,稍后你还要回到这个会话的话,那么需要按Ctrl+a+d,如果这个会话没用了,退出就不会再进来了,那直接Ctrl+d或exit退出即可。

查看当前主机上创建的所有screen会话

$ screen -ls
There is a screen on:
        7367.zujian     (Attached)
1 Socket in /var/run/screen/S-root.

进入之前的会话

$ screen -r session_name/pid         # session_name和pid都可以通过screen -ls查出来

网络断开后再次进入会话
有时候我们网络异常断开了,如果之前的会话没有退出,那么再次登录就会报错如下:

$ screen -r session_name
There is a screen on:
 7457.zujian (Attached)
There is no screen to be resumed matching session_name.

此时,需要先执行-d选项,远程detach某个session,如下:

$ screen -d session_name
$ screen -r session_name         # 重新进入你的screen窗口

https://www.xamrdz.com/backend/3u21940120.html

相关文章: