程序员我用 LinuxLinux学习之路

Linux运维之screen

2017-03-23  本文已影响93人  ikaroskun
一、简介

Linux系统的管理员经常是在远程通过ssh命令或者telent命令登录到服务器上,虽然这样十分方便,但是也有一个很大的缺陷-----在执行一些需要长时间的任务时,我们开启的连接不能够被断开,否则就会结束该任务,之前的都是无用功了。

所以就出现了一个GUN计划开发的一个自由软件。GNU Screen。他可以将会话保存为一个session中。这样你断开连接之后,该进程仍在运行。重新连接之后,还可以恢复到之前的会话中。

官方站点Screen

二、使用简介:

命令结构:

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

相关参数的说明:

三、Screen Session中的命令
四、Install

本机是在centos7下,使用命令

sudo yum install screen
# ubuntu
sudo apt-get install screen
五、示例:

1.查看当前保存的session会话:

命令:screen -ls/-list

[alex@bogon ~]$ screen -list
No Sockets found in /var/run/screen/S-alex.

2.创建一个新的session会话:

命令 screen - S myTask

创建之后查看  screen -ls

[alex@bogon ~]$ screen -ls
There is a screen on:
20653.myTask    (Attached)
1 Socket in /var/run/screen/S-alex.

3.断开连接之后重新恢复:

命令:screen -r [pid]

[alex@bogon ~]$ screen -r 20653

此时就会重新连接上之前的会话。

4.关闭会话:

使用exit可以直接退出会话。
或者使用快捷键C-a k

5.清除dead会话:

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

[alex@bogon ~]$ screen -ls
There is a screen on:
21387.myTask    (Detached)
1 Socket in /var/run/screen/S-alex.

[alex@bogon ~]$ kill -9 21387
[alex@bogon ~]$ screen -ls
There is a screen on:
21387.myTask    (Dead ???)
Remove dead screens with 'screen -wipe'.
1 Socket in /var/run/screen/S-alex.

[alex@bogon ~]$

此时可以使用screen -wipe命令清除该会话

alex@bogon ~]$ screen -wipe
There is a screen on:
21387.myTask    (Removed)
1 socket wiped out.
No Sockets found in /var/run/screen/S-alex.
上一篇下一篇

猜你喜欢

热点阅读