专栏首页大神带我来搬砖一步步成为linux大神——什么时候bash -c会创建child shell

一步步成为linux大神——什么时候bash -c会创建child shell

在服务器上运行

bash -c "python -m SimpleHTTPServer"

此时另一个窗口运行

pstree -sp 10784    # 10784是python server的PID

可以看到结果为

systemd(1)───sshd(922)───sshd(11595)───sshd(11597)───bash(11598)───python(11617)

即python进程是bash的直接子进程 可是运行

bash -c "python -V && python -m SimpleHTTPServer"

后,pstree的结果为

systemd(1)───sshd(922)───sshd(11595)───sshd(11597)───bash(11598)───bash(11638)───python(11640)

python和11598这个bash shell中间多了一个child shell 根据stackoverflow的回答,如果bash -c后面是一个simple command,bash会做一个优化,直接exec命令而不会fork,此时不生成child shell. 产生中间child shell的问题在于中间的child shell会阻断TERM信号的传播

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 一步步成为linux大神——bash shell中SIGHUP和SIGTERM信号的处理

    新人最容易发生的事情就是用ssh客户端(比如xshell)登录服务器之后,用&在后台执行了命令,第二天兴致勃勃去看任务,发现已经被kill了。一开始我学到的知识...

    大神带我来搬砖
  • 如何学习分布式系统

    2019年,做大数据的开发已经6年了,这期间分布式系统的知识学习了不少,但基本都是来源于项目需要而零敲碎打,没有系统性的融会贯通提纲挈领,在一件小事的触动之下,...

    大神带我来搬砖
  • 用antrun maven插件检查文本文件

    如果想检查java代码的质量,那么使用checkstyle plugin就可以.但是怎么检查其他文本文件的内容呢?可以使用antrun这个插件. 比如,我们的...

    大神带我来搬砖
  • Python 转 EXE(知道真相的我眼

    添加系统变量后,在cmd命令框中输入 python, 回车, 会出现类似这样的版本提示,并进入python环境。

    py3study
  • 【Python环境】python的数据科学资源

    python和R是数据科学家手中两种最常用的工具,R已经介绍的太多了,后续我们来玩玩python吧。从出身来看,R是统计学家写的,python是计算机科学家写的...

    陆勤_数据人网
  • 《Python入门01》人生苦短,要学python。

    本文主要包括:学习python的背景、适用人群、window下的python的下载安装、和编译环境的介绍。

    ShuYini
  • Apache Zeppelin 中 Python 2&3解释器

    配置 属性 默认 描述 zeppelin.python python 已经安装的Python二进制文件的路径(可以是p...

    片刻
  • python为什么会环境变量设置不成功

    学习python编程,首先要配置好环境变量。本文主要讲解python的环境变量配置,在不同版本下如何安装

    砸漏
  • windows系统如何切换系统默认pyt

    一个机器上可能同时会运行多个项目,不同的项目可能使用了不同版本的python。 在不同的python版本之间切换,有很多种方式:

    py3study
  • python3+ selenium3开发环境搭建-手把手教你安装python(详细)

    基于python3和selenium3做自动化测试,俗话说:工欲善其事必先利其器;没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握...

    北京-宏哥

扫码关注云+社区

领取腾讯云代金券