screen 使用
在使用 ddrescue 等工具时,可能需要长时间的保持 SSH 连接,为避免终端软件退出等不可避免的问题,此时可以使用 screen 管理终端会话。
安装 screen
~$ sudo apt install screen
创建匿名会话
~$ screen
创建命名会话
~$ screen -S rescue
列出所有会话
~$ screen -ls
There are screens on:
496.rescue (2019年02月28日 07时54分03秒) (Attached)
392.pts-8.ceph20 (2019年02月28日 07时51分24秒) (Detached)
2 Sockets in /var/run/screen/S-runsisi.
~$ tree /var/run/screen/
/var/run/screen/
└── S-runsisi
├── 392.pts-8.ceph20
└── 496.rescue
1 directory, 2 files
attach 会话
~$ screen -r rescue
~$ screen -r 73420.rescue
~$ screen -r 73228
detach 其它终端已 attach 的某个会话,并在当前终端 attach 该会话(在 SecureCRT/Putty 等突然关闭导致中断重连时可能会用到)
~$ screen -dr rescue
detach 当前会话
~$ ctrl-a-d
终止当前会话
~$ ctrl-d
终止 detach 状态的会话
$ screen -ls
There is a screen on:
32756.pts-8.ceph20 (2019年02月28日 07时47分47秒) (Detached)
1 Socket in /var/run/screen/S-runsisi.
~$ screen -S 32756 -X quit
~$ screen -ls
No Sockets found in /var/run/screen/S-runsisi.
创建窗口
~$ ctrl-a-c
切换至下一个窗口
~$ ctrl-a-n
切换至前一个窗口
~$ ctrl-a-p
关闭当前窗口
~$ ctrl-a-k
参考资料
screen: Persistent Terminal Sessions
https://remysharp.com/2015/04/27/screen
Using GNU Screen to Manage Persistent Terminal Sessions
https://www.linode.com/docs/networking/ssh/using-gnu-screen-to-manage-persistent-terminal-sessions/
10 Screen Command Examples to Manage Linux Terminals
https://www.tecmint.com/screen-command-examples-to-manage-linux-terminals/
最后修改于 2019-02-28