Linux 使用 screen 后台执行命令的方法

避免脚本在关闭远程终端,或网络断开时停止运行,就要使用到screen命令。screen 中有会话的概念,可以在一个 screen 会话中创建多个 screen 窗口,在每一个 screen 窗口中就像操作一个真实的 telnet/SSH 连接窗口一样。

安装 screen 软件包

# 可以直接使用yum安装
[root@xuexi ~]# yum -y install screen

# 也可以挂载 CentOS7 的光盘镜像安装
[root@xuexi ~]# rpm -ivh /mnt/Packages/screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm
准备中...                          ################################# [100%]
正在升级/安装...
   1:screen-4.1.0-0.25.20120314git3c29################################# [100%]

screen 使用方法

直接在命令行键入 screen 命令

[xf@xuexi ~]$ screen

screen 会创建一个全新的 shell 窗口,你可以执行任意程序,就像 在ssh 窗口一样。

比如说我们使用 vim 创建一个 txt 文件,并输入一部分数据。

[xf@xuexi ~]$ vim a.txt
//并随意输入一些数据
a
bb
ccc
dddd
eeeee
ffffff

输入完成后退出插入模式回到正常模式,按下 <Ctrl>+a+d 此时会显示如下部分

[root@xuexi ~]# screen
[detached from 10992.pts-0.xuexi]  //分离出一个独立的会话

一段时间后,或者关闭了当时的终端,如果还想要回到之前的 screen 会话

[root@xuexi ~]# screen -ls  //查看已经建立会话的ID
There is a screen on:
    10992.pts-0.xuexi   (Detached)
1 Socket in /var/run/screen/S-root.
 
[root@xuexi ~]# screen -r 10992  //重新建立会话

分离出独立会话后,即使关闭当前终端,也可再次使用。如果想关闭 screen 会话,使用 exit 命令。

常用参数

  • screen -S [会话名称]:指定建立会话的名称
[root@xuexi ~]# screen -S test
[detached from 11347.test]
[root@xuexi ~]# screen -ls
There is a screen on:
    11347.test  (Detached)
1 Socket in /var/run/screen/S-root.
  • screen -ls: 列出当前所有的会话
  • screen -r [会话ID|会话名称]:回到指定会话,可以是会话名称,也可以是会话 ID
[root@xuexi ~]# screen -r test
[detached from 11347.test]
[root@xuexi ~]# screen -r 11347
[detached from 11347.test]

以上就是使用 screen 后台实时执行命令的介绍。

相关推荐

Linux后台进程:nohup, setsid, &, disown, screen

Linux后台进程:nohup, setsid, &, disown, screen

我们经常会碰到这样的问题,用ssh登录了远程的Linux服务器,运行了一些耗时较长的任务,结果却由于网络等的不稳定导致任务中途失败。 这是由于在用户注销(logout)或者网络断开时,终端会收到 HUP(hangup)信号从而关闭其所有子进程。 解决办法有两种:让进程忽略HUP信号,或让进程运行在新的会话里从而成为不属于此终端 ...

查看和终止nohup和&后台运行进程

查看和终止nohup和&后台运行进程

1.nohup 用途:不挂断地运行命令。我们在使用Xshell等工具执行Linux脚本时,有时候会由于网络问题,导致失去连接,终端断开,程序运行一半就意外结束了。这种时候,就可以用nohup指令来运行指令,使程序可以忽略挂起信号继续运行。 语法:nohup Command [ Arg … ] [ & ] out.file 2>&1 & command>out.file是将 command 的 ...

linux 后台进程运行的方法:nohup、setsid、&

linux 后台进程运行的方法:nohup、setsid、&

我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢? 下面举了一些例子, 您可以针对不同的场景选择nohup/setsid/&不同的方式来处理这个问题。 linux 后台进程运行 场 ...

进程终止命令:kill 与 kill -9 的区别

进程终止命令:kill 与 kill -9 的区别

kill 和 kill -9 是常用的命令,都可以用来杀死进程。那 kill 与 kill -9 有什么区别呢? kill kill 命令默认的信号就是 15,也就是 kill -15 ,被称为优雅的退出。当使用 kill -15 时,系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该信号后,具体要如何处理是自己可以决定的。 这时候,应用程序可以选择: 因为 ...

微信扫一扫,分享到朋友圈

Linux 使用 screen 后台执行命令的方法