Linux后台运行程序最实用的两种方式(2)

1、如何使用screen


在这里插入图片描述

上图是screen的session列表,图中Attached代表有其他终端正在使用这个session,Detached说明session处于离线状态,

下面一起来看一下我们使用Screen时,常用的一些命令:

screen -S name -> 创建一个名为:name 的session(伪终端)

screen -R name -> 先试图恢复离线的session。若找不到离线的,即建立新的session(伪终端)

screen -ls -> 列出所有已经存在的session

ctrl + a + d -> 退出当前的session

screen -d name -> 将指定的session作业离线。

screen -d -r name -> 离线当前session,恢复并回到name这个session

kill (session进程号) -> 杀掉某个session进程

实际操作流程示例

1、创建一个名称为“chh”的session。

创建方式一

screen -S chh

创建方式二

screen -R chh

2、创建后会自动进入session,进行相关操作。

在这里插入图片描述

3、通过ctrl + a + d退出当前session,使其后台(离线)运行

在这里插入图片描述

4、screen -ls 查看session列表

在这里插入图片描述

5、通过screen -r chhscreen -r 9043(进程号)登录离线session

6、杀掉“chh”这个session

kill 9043(进程号)

2、screen 工具需安装


  • 如果你使用yum软件包管理工具:yum install screen

  • 如果你使用APT软件包管理工具:apt-get install screen

另:手动下载地址:http://ftp.gnu.org/gnu/screen/

3、screen 后台运行原理


我们可以通过查看进程树来理解screen是如何不受ssh断开影响的。

  • 这是不用screen的普通运行方式及进程树

[root@pvcent107 ~]# ping www.baidu.com &

[1] 9499

[root@pvcent107 ~]# pstree -H 9499

init─┬─Xvnc

├─acpid

├─atd

├─2*[sendmail]

└─sshd─┬─sshd───sshd───bash───ping

└─sshd───sshd───bash───pstree

我们可以看出,未使用 screen 时我们所处的 bash 是 sshd 的子进程,当 ssh 断开连接时,HUP 信号自然会影响到它下面的所有子进程(包括我们新建立的 ping 进程),杀掉所有子进程。

  • 再看看使用 screen 运行进程的进程树

[root@pvcent107 ~]# screen -r chh

[root@pvcent107 ~]# ping www.baidu.com &

[1] 9488

[root@pvcent107 ~]# pstree -H 9488

init─┬─Xvnc

├─acpid

├─atd

├─screen───bash───ping

├─2*[sendmail]

如图可见,bash 是 screen 的子进程,而 screen 是 init(PID为1)的子进程。那么当 ssh 断开连接时,HUP 信号自然不会影响到 screen 下面的子进程了。

附、一张有故事的照片(十三)

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以点击这里获取!

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 26
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值