Linux中screen命令

screen是一款由GNU计划开发的用于命令行终端切换的自由软件。用户可以通过该软件同时连接多个本地或远程的命令行会话,并在其间自由切换。GNU Screen可以看作是窗口管理器的命令行界面版本。它提供了统一的管理多个会话的界面和相应的功能。

screen重要性

screen的重要性,主要是体现在它可以方便的在服务器上一直运行,只要服务器没有宕机,没有断电它就可以做到不用停止。其实后端工程师经常会遇到,要通过执行脚本处理一些数据,但这个脚本可能需要执行半天或者几天,screen就是最佳选择了,过一段时间登录到服务器上查看下运行状态,是否运行完成。没有完成挂起来继续运行。

screen 常用的参数

screen 命令参数很多,我们只看下平常用的比较多的几个

参数 说明
ls 列出当前所有的回话
S 大写的S,新建一个名称是xxx的会话
r 通过序号连接进程会话
d detach断开某个会话
D 与-d命令相同,但是会logout原来在screen里的用户

在每个screen 会话下,所有命令都以 ctrl+a开始的

参数 说明
ctrl+a d detach会话,将目前的 screen session 丢到后台执行,并会回到还没进 screen 时的状态,screen 都在继续执行,即使 logout 也不影响后台的执行
ctrl+a k 强行关闭当前的窗口
ctrl+a z 把当前的会话放到后台执行,用fg命令可以调回来

screen 使用

先模拟一个需要执行很长时间的脚本代码

test.php<?phpsleep(10000);echo 111;?>

程序休眠10000秒之后输出 1111
先创建一个screen,然后执行它之后,退出登录状态

screen -S testphp test.php

创建名为test的screen,进入screen之后执行test.php。然后让脚本在 screen里面一直执行,按 Ctrl+a d让脚本在screen后台执行。

screen -S test[detached from 3934.test]

exit 退出登录,等一段时间然后再登录上去,查看下脚本是否还在执行

ssh screen -lsThere are screens on:3934.test(02/25/2020 10:27:06 PM)(Detached)

名为test的screen ID 为3934,连接该screen并进入

screen -r 3934php test.php

可以看到 test.php的脚本还在执行。

执行ctrl+a z,然脚本在后台执行,然后再使用fg调到前台

[1]+  Stopped                 screen -r 3934执行fgphp test.php

再看下screen -d 和 -D
重新打开一个窗口,ssh之后,执行

screen -d 3934[3934.test detached.]然后查看前一个窗口,看看是否断开了screenscreen -r 3934[remote detached from 3934.test]

再看下,-D,在第一个窗口

screen -r 3934第二个窗口执行-Dscreen -D 3934[3934.test power detached.]再看第一个窗口已经被强制退出登录了。screen -r 3934[remote power detached from 3934.test]Connection to 127.0.0.1 closed.

作为开发人员,其实平常开发中只需要知道三个命令就能满足90%以上的使用范围了

screen -lsscreen -Sscreen -Rctrl+a d
(0)

相关推荐

  • Python也有pdb

    来源:Python 技术「ID: pythonall」 C有gdb,Python也有pdb 写过C语言的同学们想必都很怀念(读者:¿)gdb调试器,使用gdb可以随意在程序运行过程中暂停流程.查看变量 ...

  • PHP操作用户提交内容时需要注意的危险函数

    PHP操作用户提交内容时需要注意的危险函数 对于我们的程序开发来说,用户的输入是解决安全性问题的第一大入口.为什么这么说呢?不管是SQL注入.XSS还是文件上传漏洞,全部都和用户提交的输入参数有关.今 ...

  • PHP的CLI命令行运行模式浅析

    PHP的CLI命令行运行模式浅析 在做开发的时候,我们不仅仅只是做各种网站或者接口,也经常需要写一些命令行脚本用来处理一些后端的事务.比如对数据进行处理统计等.当然也是为了效率着想,当一个事务有可能会 ...

  • linux中find命令高级用法

    https://www.cnblogs.com/bianchengzhuji/p/10133821.html 在<Linux中的文件查找技巧>一文中,我们已经知道了文件查找的基本方法,今天 ...

  • linux中cd命令的15个示例

    在 Linux 中cd' (Change Directory) 命令对于新手和系统管理员来说是最重要和最广泛使用的命令之一.对于无头服务器上的管理员,'cd' 是导航到目录以检查日志.执行程序/应用程 ...

  • linux中grep命令的用法

    作为linux中最为常用的三大文本(awk,sed,grep)处理工具之一,掌握好其用法是很有必要的. 首先谈一下grep命令的常用格式为:grep  [选项]  "模式"  [文 ...

  • Linux中sed命令如何使用?Linux入门教程

    sed是一项Linux指令,也是Linux中的重要命令之一,在文本处理方面有着非常重要的作用,可处理文本的行与列.那么sed是什么?Linux中sed命令如何使用?具体内容请看下文: sed是什么? ...

  • Linux中 ip 命令的使用实例

    在以前的Linux系统版本中,我们一直使用' ifconfig '命令查看ip地址等信息.但是"ifconfig"已经不再被维护,并在近几年的Linux版本中已经被弃用. ifco ...

  • 编程语言关于linux中sed命令的示例代码分享详解

    简介 sed 是一种在线编辑器,它一次处理一行内容.处理时,把当前处理的行存储在临时缓冲区中,称为"模式空间"(pattern space),接着用sed命令处理缓冲区中的内容,处 ...

  • Linux命令中交互式命令都有哪些?Linux基础

    交互式命令就是在top命令执行过程中使用的一些命令.top命令用于实时地对系统处理器状态进行监控,它能够实时地显示系统中各个进程的资源占用状况.该命令可以按照CPU的使用.内存的使用和执行时间对系统任 ...

  • Linux中的split命令,文件切割

    Linux中的文件,特别是日志文件,特别大了不好打开,可以用split命令来切割成小文件 split命令有两种方式: 1,指定行数来切割 split -l 300 log.txt newfile 每个 ...

  • Linux 中最常用 150 个命令汇总

    人工智能算法与Python大数据 致力于提供深度学习.机器学习.人工智能干货文章,为AI人员提供学习路线以及前沿资讯 23篇原创内容 公众号 点上方人工智能算法与Python大数据获取更多干货 在右上 ...