Screen 命令:让程序在后台运行

GNU's Screen 官方站点:http://www.gnu.org/software/screen/

【背景】

在做一个大体积的数据备份时,在远程终端上直接运行备份脚本back.sh,或运行back.sh&放到后台运行,此时关闭远程终端,或网络断开都会让命令停止运行。此时就要使用到screen命令。用户可以在一个screen会话中创建多个screen窗口,在每一个screen窗口中就像操作一个真实的telnet/SSH连接窗口一样。

【快速一瞥】

1.使用指令screen -S name  打开新窗口,输入程序运行后,使用快捷键Ctrl+A+D,关闭窗口即可实现程序的后台运行。

2.要想重现窗口,使用指令screen -r name。

3.要想关闭后台进程,先使用screen -ls查看所有后台窗口,从中可以看到进程号,再使用kill 进程号关闭进程。

4. 如果想关闭screen会话,使用exit命令

【命令详情】

1. 安装 screen

    CentOS/RedHat/Fedora下:# yum -y install screen

    Ubuntu/Debian下:# apt-get-y install screen

2. 语法

    # screen [-AmRvx -ls -wipe][-d <作业名称>][-h <行数>][-r <作业名称>][-s ][-S <作业名称>]

    参数说明

    参数说明

        -A  将所有的视窗都调整为目前终端机的大小。

        -d <作业名称>  将指定的screen作业离线

        -h <行数>  指定视窗的缓冲区行数。

        -m  即使目前已在作业中的screen作业,仍强制建立新的screen作业。

        -r <作业名称>  恢复离线的screen作业

        -R  先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。

        -s  指定建立新视窗时,所要执行的shell。

        -S <作业名称>  指定screen作业的名称

        -v  显示版本信息。

        -x  恢复之前离线的screen作业。

        -ls或--list  显示目前所有的screen作业

        -wipe  检查目前所有的screen作业,并删除已经无法使用的screen作业。

3. 常用的 screen 命令

// 直接在命令行键入screen命令,会创建一个全新的shell窗口

screen

// 新建一个名叫 test 的session,并马上进入

screen -S test

// 创建一个名叫 test 的session,但暂不进入,可用于系统启动脚本里

screen -dmS test

// 列出当前所有session

screen -ls 

// 接入(attach)或者恢复一个名为test会话

screen -r test

// 远程离线(detach) test 会话

screen -d test

// 脱离(detach)当前会话,将目前的 screen session (可能含有多个 windows) 丢到后台执行

CTRL+a ,然后 +d

//查看 screen 版本号

screen -v

// 如果由于某种原因其中一个会话死掉了(例如人为杀掉该会话),这时screen -list会显示该会话为dead状态。使用screen -wipe命令清除该会话:

screen -wipe

你可能感兴趣的:(Screen 命令:让程序在后台运行)