Linux screen后台任务介绍
Posted 峥嵘life
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux screen后台任务介绍相关的知识,希望对你有一定的参考价值。
Linux screen后台任务介绍
文章目录
Screen主要用在耗时较长的操作,如编译大包程序,如果不用screen,在编译过程中,如果断开ssh,编译也会中断。
但是使用screen,就相当于后台任务,即使关闭编译窗口,编译还是继续执行。
我目前的工作是用在android系统源码的编译环境中。
一般都是临下班,创建一个screen任务,隔天过来看编译结果。
本文只介绍screen的常用操作。
一、安装screen:
检查是否安装:
rpm -q screen
这个检查安装的命令不一定使用所有环境,
最简单的方法就是输入screen看看是否能识别,就知道环境里面是否安装了screen。
安装:
以centos为例,debian系的就用apt
yum install screen
需要管理员权限才可以安装,但是一般环境是会安装有的。
二、创建screen
在执行耗时操作时,先打开screen会话。
会话名,是为这个screen会话定义一个名字,方便下次回到这个会话,
当然,也可以直接执行screen,不加任何参数,通过会话id来回到这个会话。
1、screen
系统会默认设置一个会话名,不用担心,因为每个会话名都是有时间搓的。
2、screen -S 会话名
启动新的screen会话后,执行你需要的操作。
三、退出当前screen会话:
输入命令:exit
退出后,这个会话就结束了,无法进入了。
四、获取所有会话列表:
输入命令:screen -ls
这个命令会返回所有会话的id以及会话名
比如:
First_Test$ screen -ls
There are screens on:
186256.project0817 (2021年08月17日 20时15分46秒) (Attached)
110759.20210814 (2021年08月14日 12时39分25秒) (Detached)
258777.pts-0.R740-861 (2021年08月05日 18时22分58秒) (Detached)
3 Sockets in /var/run/screen.
这里能查看到存在三个screen任务,Attached表示有窗口打开,Detached表示未打开窗口。
如果exit之后,就不会看到信息了。
186256.project0817 //第一个小数点前面表示进程id,后面表示进程名称,默认生成的进程名称可能包括小数点。
五、进入某个会话
screen -r session_name # 回到session_name这个session
进入之前的screen会话(如果已经在该会话里,就进不去了):
比如要进入会话258777.pts-0.R740-861,可以使用命令:
screen -r 258777.pts-0.R740-861
screen -r pts-0.R740-861
六、把会话任务退到后台,并且返回之前界面
在每个screen session下,ctrl+a+d为较常用的操作,
作用为:将任务挂起放入后台执行,并会回到还没进 screen 时的状态,此时即使logout也不影响。
七、语法和常用命令
1、完整语法
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作业。
2、常用screen参数
screen 新建当前时间的任务
screen -S yourname -> 新建一个叫yourname的session
screen -ls -> 列出当前所有的session
screen -r yourname -> 回到yourname这个session
screen -d yourname -> 远程detach某个session
screen -d -r yourname -> 结束当前session并回到yourname这个session
总结:
最常用的三个:
screen 创建当前时间任务
screen -ls 查看之前任务
screen -r XXX 恢复上次任务回话
其他的基本不用。
共勉:时间是总会过去的,所有不要让以后留下遗憾。
以上是关于Linux screen后台任务介绍的主要内容,如果未能解决你的问题,请参考以下文章