Linux Screen

linux screen基本使用


前言

之前我想在我的服务器上执行一个长时间运行的任务,我使用x &挂在后台,并使用nohup x &请求shell结束后不清理命令,并且为防止父进程结束,又使用了setsid x &置父程序id为1。SSH会话被终止,但我再次连上去时使用jobs并没有出现我之前的程序。

所幸,我发现了linux上的screen程序,非常好用。

介绍

“Screen or GNU Screen is a terminal multiplexer.“也就是说Screen是一款终端复用器。我们可以开始一个screen会话,然后在里面可以打开任意数量的虚拟终端。在Screen中运行的进程将在其窗口不可见时继续运行,即使断开SSH连接。

图1

至于安装就很简单,在Centos上只需要运行:

sudo yum install screen

使用

对于screen你需要命名,以区分你的任务。

screen -S session_name

而使用:

screen -ls

则可以查看screen session的id,以便后面的使用。

使用:

screen -r id

则重新进入之前创建的session里面。

具体命令

我们进入screen session后,可以使用 Ctr+a 然后 ?查看screen的命令:

图2

非常的清晰

一般我们会使用:

detach:ctrl+a d

kill: ctrl+a k

history: ctrl+a { }

clear:ctrl+a C

windowslist:ctrl+a " 列出所有窗口。

split: ctrl+a S 将当前区域水平分割成两个区域。

other: ctrl+a ctrl+a 在当前窗口和以前窗口之间切换。

而0-9在screen里面则可以跳转到session窗口。

screen 设置

当screen开始时,它会从/etc/screenrc和~/.screenrc读取它的设置参数。我们可以根据这两个文件更改默认screen设置。

图3

如果没有~/.screenrc的话,可以创建,用来自定义配置。

以上就是screen的介绍和使用内容。

结束

当我们想要kill一个screen的时候,可以直接用这个命令:

screen -S session_name -X quit

此外,深入的学习请点击screen指南

Screen User’s Manual

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus