运行维护:浅记Screen命令的使用

screen 是一个非常有用的命令,提供从单个 SSH 会话中使用多个 shell 窗口(会话)的能力。

当会话被分离或网络中断时,screen 会话中启动的进程仍将运行,你可以随时重新连接到 screen 会话。


运行环境 Runtime environment

1
2
操作系统: Red Hat 4.8.5-16
screen: 4.01.00devel (GNU) 2-May-06

背景

想要方便又优雅的管理程序后台运行。

比nohup更灵活更强大的后台运行。

screen 介绍

screen 是一个非常有用的命令,提供从单个 SSH 会话中使用多个 shell 窗口(会话)的能力。

当会话被分离或网络中断时,screen 会话中启动的进程仍将运行,你可以随时重新连接到 screen 会话。

如果你想运行一个持久的进程或者从多个位置连接到 shell 会话,这也很方便。

在本文中,我们将展示在 Linux 上安装和使用 screen 的基本知识。

安装 screen

在一些流行的发行版上已经预安装了。你可以使用下面的命令检查是否已经在你的服务器上安装了。

screen -v

1
Screen version 4.00.03 (FAU)

如果在 Linux 中还没有screen ,你可以使用系统提供的包管理器很简单地安装它。

CentOS/RedHat/Fedora

yum -y install screen

Ubuntu/Debian

apt-get -y install screen

命令简介

1
2
3
4
5
6
7
8
9
10
screen #新建一个session
screen ifconfig #在新的session中执行ifconfig后退出新的seesion
screen -S xd #新建一个叫xd的session
screen -ls #列出当前所有的session
screen -r xd #连接到一个离线(Detached)的screen,个人理解为没人连接
screen -x xd #连接到一个在线(Attaced)的screen.(Multi display mode),个人理解为有人连接
screen -X #在其它的screen 上执行操作,ex. screen -S xd -X screen ls -lh
screen -d xd #强制将xd离线,即断开所有人的连接
screen -d #退出当前session,与exit不同,exit退出后删除session
screen -wipe #清除dead session

会话恢复

*通常ssh到server执行作业时,当断网或者窗口关闭会终止作业,此时可以用screen命令,类似VNC,不怕断网和窗口突然关闭

1
2
screen -S xd 开启一个screen ,并执行作业
screen -r xd 连接到screen

会话退出

使用screen名字,kill掉。

screen -S session_name -X quit

screen -r [会话名称]

  • 暂时退出会话

ctr+a+d

  • 退出并销毁会话

screen -r [会话名称]

exit

总结

最常用的用法

  • 用screen运行命令

screen -S [会话名称,根据自己需要命名即可] [执行命令]

例如:

screen -S demo python demo.py

  • 查询 screen窗口列表

screen -ls

Post not found: 文章文件名(不要后缀) 文章标题(可选)

可以看到当前有两个screen会话。

  • 查看后台会话运行情况,将后台程序调到前台