首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将一个shell的pid传递给在父shell中创建的另一个shell,并检查父进程是否正在运行或终止?

要将一个shell的pid传递给在父shell中创建的另一个shell,并检查父进程是否正在运行或终止,可以使用以下方法:

  1. 在父shell中创建一个子shell,并将父shell的pid传递给子shell。可以使用$$获取当前shell的pid,然后在创建子shell时将该pid作为参数传递给子shell。例如:
代码语言:txt
复制
#!/bin/bash
# 父shell脚本
child_pid=$(bash -c 'echo $PPID')  # 获取父shell的pid
bash -c "sh child_script.sh $child_pid"  # 将父shell的pid传递给子shell
  1. 在子shell中,接收父shell传递的pid,并检查父进程是否正在运行或终止。可以使用ps命令结合grep来检查父进程是否存在。例如:
代码语言:txt
复制
#!/bin/bash
# 子shell脚本
parent_pid=$1  # 接收父shell传递的pid
if ps -p $parent_pid > /dev/null; then
    echo "父进程正在运行"
else
    echo "父进程已终止"
fi

这样,子shell就可以接收到父shell的pid,并根据需要进行相应的处理。请注意,这只是一种实现方式,具体的实现方法可能因操作系统和shell版本而有所差异。

关于云计算领域的专业知识,以下是一些相关名词的概念、分类、优势、应用场景以及腾讯云相关产品的介绍链接:

  1. 云计算(Cloud Computing):
    • 概念:通过网络提供计算资源、存储资源和应用服务的一种计算模式。
    • 分类:公有云、私有云、混合云。
    • 优势:灵活性、可扩展性、高可用性、成本效益等。
    • 应用场景:企业应用、大数据分析、人工智能、物联网等。
    • 腾讯云产品:腾讯云服务器(CVM)、云数据库(CDB)、云函数(SCF)、人工智能(AI)等。腾讯云产品介绍
  • 前端开发(Front-end Development):
    • 概念:负责构建用户界面和用户体验的开发工作。
    • 分类:HTML、CSS、JavaScript等。
    • 优势:提升用户体验、增加交互性、优化页面加载速度等。
    • 应用场景:网页开发、移动应用开发等。
    • 腾讯云产品:腾讯云CDN、腾讯云Web应用防火墙(WAF)、腾讯云静态网站托管等。腾讯云产品介绍
  • 后端开发(Back-end Development):
    • 概念:负责处理服务器端逻辑和数据存储的开发工作。
    • 分类:Java、Python、Node.js等。
    • 优势:处理复杂业务逻辑、数据存储和处理、提供API接口等。
    • 应用场景:Web应用、移动应用、大型系统等。
    • 腾讯云产品:腾讯云云服务器(CVM)、腾讯云数据库(CDB)、腾讯云函数(SCF)等。腾讯云产品介绍
  • 软件测试(Software Testing):
    • 概念:通过验证和验证软件的正确性、完整性和质量的过程。
    • 分类:单元测试、集成测试、系统测试、性能测试等。
    • 优势:提高软件质量、减少错误、增加稳定性等。
    • 应用场景:软件开发过程中的各个阶段。
    • 腾讯云产品:腾讯云测试云、腾讯云质量监控等。腾讯云产品介绍
  • 数据库(Database):
    • 概念:用于存储、管理和检索数据的系统。
    • 分类:关系型数据库、非关系型数据库等。
    • 优势:数据持久化、数据一致性、高效查询等。
    • 应用场景:数据存储、数据分析、数据处理等。
    • 腾讯云产品:腾讯云云数据库MySQL版(CDB for MySQL)、腾讯云云数据库MongoDB版(CDB for MongoDB)等。腾讯云产品介绍
  • 服务器运维(Server Operation and Maintenance):
    • 概念:负责服务器的配置、部署、监控和维护工作。
    • 分类:系统管理、网络管理、安全管理等。
    • 优势:确保服务器的稳定性、安全性和高可用性等。
    • 应用场景:云服务器、物理服务器等。
    • 腾讯云产品:腾讯云云服务器(CVM)、腾讯云云监控等。腾讯云产品介绍
  • 云原生(Cloud Native):
    • 概念:一种构建和运行在云环境中的应用程序的方法论。
    • 分类:容器化、微服务架构、自动化运维等。
    • 优势:弹性伸缩、高可用性、快速部署等。
    • 应用场景:云计算环境中的应用开发和部署。
    • 腾讯云产品:腾讯云容器服务(TKE)、腾讯云无服务器云函数(SCF)等。腾讯云产品介绍
  • 网络通信(Network Communication):
    • 概念:在计算机网络中进行数据传输和交换的过程。
    • 分类:TCP/IP、HTTP、WebSocket等。
    • 优势:实时性、可靠性、安全性等。
    • 应用场景:网络通信、实时数据传输等。
    • 腾讯云产品:腾讯云负载均衡(CLB)、腾讯云弹性公网IP等。腾讯云产品介绍
  • 网络安全(Network Security):
    • 概念:保护计算机网络和系统免受未经授权的访问、破坏和数据泄露的过程。
    • 分类:防火墙、入侵检测系统、加密技术等。
    • 优势:保护数据安全、防止网络攻击等。
    • 应用场景:网络安全防护、数据加密等。
    • 腾讯云产品:腾讯云Web应用防火墙(WAF)、腾讯云DDoS防护等。腾讯云产品介绍
  • 音视频(Audio and Video):
    • 概念:处理音频和视频数据的技术和方法。
    • 分类:音频编解码、视频编解码、流媒体传输等。
    • 优势:音视频处理、实时传输、多媒体应用等。
    • 应用场景:音视频通话、音视频会议、流媒体服务等。
    • 腾讯云产品:腾讯云实时音视频(TRTC)、腾讯云云直播(CSS)等。腾讯云产品介绍
  • 多媒体处理(Multimedia Processing):
    • 概念:处理多媒体数据(如图像、音频、视频等)的技术和方法。
    • 分类:图像处理、音频处理、视频处理等。
    • 优势:多媒体数据处理、特效处理、媒体编辑等。
    • 应用场景:图像处理、音频处理、视频处理等。
    • 腾讯云产品:腾讯云智能图像处理(CI)、腾讯云智能音频处理(AIA)等。腾讯云产品介绍
  • 人工智能(Artificial Intelligence):
    • 概念:模拟和扩展人类智能的理论和技术。
    • 分类:机器学习、深度学习、自然语言处理等。
    • 优势:智能决策、自动化处理、智能推荐等。
    • 应用场景:图像识别、语音识别、自然语言处理等。
    • 腾讯云产品:腾讯云人工智能(AI)平台、腾讯云智能图像处理(CI)等。腾讯云产品介绍
  • 物联网(Internet of Things):
    • 概念:将各种物理设备连接到互联网,实现设备之间的通信和数据交换。
    • 分类:传感器、物联网平台、物联网协议等。
    • 优势:设备互联、数据采集、远程控制等。
    • 应用场景:智能家居、智能工厂、智慧城市等。
    • 腾讯云产品:腾讯云物联网开发平台(IoT Explorer)、腾讯云物联网通信(IoT Hub)等。腾讯云产品介绍
  • 移动开发(Mobile Development):
    • 概念:开发移动应用程序的过程。
    • 分类:Android开发、iOS开发、跨平台开发等。
    • 优势:移动应用开发、用户体验优化、移动端适配等。
    • 应用场景:移动应用开发、移动端业务开发等。
    • 腾讯云产品:腾讯云移动应用开发平台(MPS)、腾讯云移动推送(TPNS)等。腾讯云产品介绍
  • 存储(Storage):
    • 概念:用于存储和管理数据的技术和设备。
    • 分类:对象存储、文件存储、块存储等。
    • 优势:数据持久化、数据备份、数据共享等。
    • 应用场景:数据存储、数据备份、数据共享等。
    • 腾讯云产品:腾讯云对象存储(COS)、腾讯云文件存储(CFS)等。腾讯云产品介绍
  • 区块链(Blockchain):
    • 概念:一种去中心化的分布式账本技术。
    • 分类:公有链、私有链、联盟链等。
    • 优势:去中心化、不可篡改、可追溯等。
    • 应用场景:数字货币、供应链管理、智能合约等。
    • 腾讯云产品:腾讯云区块链服务(TBCS)等。腾讯云产品介绍
  • 元宇宙(Metaverse):
    • 概念:虚拟和现实世界的融合,构建一个虚拟的多维度空间。
    • 分类:虚拟现实、增强现实、混合现实等。
    • 优势:虚拟交互、多维度体验、创造性表达等。
    • 应用场景:虚拟社交、虚拟商城、虚拟教育等。
    • 腾讯云产品:腾讯云虚拟现实(VR)等。腾讯云产品介绍

以上是对于云计算领域的一些专业知识和相关产品的介绍。请注意,腾讯云仅作为示例,其他云计算品牌商也提供类似的产品和服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

100个Linux命令(7)-进程管理

默认killall每秒检查一次该杀进程是否还存在,只有不存在了才会给出退出状态码。...创建进程方法以及父子进程一个进程都会有一个唯一 PID进程环境下执行调用了程序,这个程序触发进程就是子进程进程 PPID 就是该进程进程 PID,由此可知,子进程总是由进程创建... Linux ,父子进程以树型结构方式存在,进程创建多个子进程之间称为兄弟进程 CentOS 6,init 是所有进程进程 CentOS7上则为 systemd。...exec:exec 是加载另一个应用程序替代当前运行进程,也就是说创建进程情况下加载一个新程序。...;或者抢占式调度方式,高优先级进程强制抢占了正在执行低优先级进程 运行态-->终止态:个进程已完成发生某种特殊事件,进程将变为终止状态。

1.7K20

Linux下进程相关知识

fork系统调用创建一个基本相同进程,这个子进程一个进程ID(PID),原始进程成为它进程,并有一个称为进程ID PPID东西。...现在看看你终端,你将看到正在运行进程是你shell,因此系统上有一个运行bash进程。现在请记住,当你运行ps l命令时,是从运行bash进程运行。...bash shellPID是ps l命令PPID。 当系统启动时,内核创建一个名为init进程,它PID为1。除非系统关闭,否则无法终止init进程。...然而,这还不足以完全终止一个流程。进程必须通过使用等待系统调用来确认子进程终止,这是为了检查进程终止状态。...如果查看ps输出PID,则可以/proc目录中找到它。 进入其中一个进程查看该文件: 你能看到进程状态信息以及更详细信息。

1.4K50

python模块之subprocess类与常量

stdin, stdout, stderr参数特殊值,意味着使用管道重定向输入输出 subprocess.STDOUT:可传递给stderr参数特殊值,表示重定向标准错误到标准输出 Popen 一个进程执行子程序...子进程文件句柄继承自进程。除此之外,stderr还可以是STDOUT,表示标准错误输出重定向到标准输出。 preexec_fn:限于POSIX系统,设置一个可调用对象,先于子进程程序执行。...startupinfo:仅限于Windows,略 creationflags:仅限于Windows,略 方法 poll():检查进程是否终止。...如果子进程timeout后没有终止,抛出TimeoutExpired异常,但子进程并未kill掉,一个良好应用应该kill掉子进程结束交互: proc = subprocess.Popen(......如果设置了shell=True,pid表示派生shell进程号 returncode:子进程返回码,None表示进程终止。负数-N表示进程被信号N终止(仅限POSIX)。

2.4K10

Python标准库06 子进程 (subprocess包)

从这个意义上来说,subprocess功能与shell类似。 subprocess以及常用封装函数 当我们运行python时候,我们都是创建运行一个进程。...正如我们Linux进程基础中介绍那样,一个进程可以fork一个进程让这个子进程exec另外一个程序。...Python,我们通过标准库subprocess包来fork一个进程运行一个外部程序(fork,exec见Linux进程基础)。...使用subprocess包函数创建进程时候,要注意: 1) 创建进程之后,进程是否暂停,等待子进程运行。 2) 函数返回什么 3) 当returncode不为0时,进程如何处理。...()           # 终止进程 child.send_signal()    # 向子进程发送信号 child.terminate()      # 终止进程进程PID存储child.pid

2.8K60

命名空间介绍之四:PID 命名空间延伸

本文中,我们将继续上周关于 PID 命名空间讨论(扩展我们正在进行关于命名空间系列文章)。PID 命名空间一个用途是实现一个进程包(容器),其行为类似于一个自包含 Linux系统。...通常,PID 命名空间也会在其 init 进程终止时被破坏。但是,有一个例外:只要命名空间中某个进程 /proc/pid/ns/pid 文件被绑定挂载保持打开,命名空间就不会被破坏。...这运行我们使用 shell 命令去查看与每个新 PID 命名空间相关 /proc/PID 目录内容,使用 ps 命令查看根 PID 命名空间中可见进程。...下图展示了 orphan 进程终止前不同进程之间关系。箭头表示进程之间-子关系。...因为“进程被它位于另一个命名空间进程(ns_run)获取。下图展示了 orphan 进程终止后,“子”进程终止前,进程之间关系。

2.1K60

【Linux】Linux进程控制>进程创建&&进程终止&&进程等待&&进程程序替换

1.进程创建 1.1 fork函数 linuxfork函数时非常重要函数,它从已存在进程创建一个进程。...新进程为子进程,而原进程进程 #include pid_t fork(void); 返回值:自进程返回0,进程返回子进程id,出错返回-1 进程调用fork,当控制转移到内核...2节,其它函数man手册第3节 这些函数之间关系如下图所示 下图exec函数族 一个完整例子: 4.3 简易shell 我们可以综合前面的知识,做一个简易shell 考虑下面这个与shell典型互动...shell建立一个进程,然后在那个进程运行ls程序等待那个进程结束 然后shell读取新一行输入,建立一个进程,在这个进程运行程序 等待这个进程结束。...Linux鼓励将这种应用于程序之内模式扩展到程序之间。如下图 一个C程序可以fork/exec另一个程序,传给它一些参数。这个被调用程序执行一定操作,然后通过exit(n)来返回值。

11510

python—subprocess、gl

一、subprocess模块 1.subprocess以及常用封装函数 运行python时候,我们都是创建运行一个进程。...像Linux进程那样,一个进程可以fork一个进程让这个子进程exec另外一个程序。Python,我们通过标准库subprocess包来fork一个进程运行一个外部程序。...subprocess包定义有数个创建进程函数,这些函数分别以不同方式创建进程,所以我们可以根据需要来从中选取一个使用。...()       # 终止进程 child.pid               #存储子进程PID 2.子进程文本流控制 子进程标准输入、标准输出和标准错误如下属性分别表示: child.stdin...child2输出文本也被存放在PIPE,直到communicate()方法从PIPE读取出PIPE文本;communicate()是Popen对象一个方法,该方法会阻塞进程,直到子进程完成

1.5K20

MIT 6.S081 (BOOK-RISCV-REV1)教材第一章内容 --- 操作系统接口

进程,fork返回子类PID进程,fork返回零。...wait系统调用返回当前进程已退出(已杀死)子进程PID,并将子进程退出状态复制到传递给wait地址; 如果调用方进程都没有退出,那么wait等待一个进程退出。...这称为非阻塞等待,进程会继续执行,无论是否有任何子进程已经终止。...尽管最初子进程进程有着相同内存内容,但是二者在运行拥有不同内存空间和寄存器: 一个进程改变变量不会影响到另一个进程。...进程写操作(由于等待,只有进程完成后才运行)进程停止写入位置进行。

22120

【Linux】Linux进程控制 --- 进程创建终止、等待、替换、shell派生子进程理解…

fork之后,子进程如果创建成功是不需要得到进程pid,因为这没有意义,他完全可以通过getppid来获取进程pid,所以没有必要用返回值来接收,究其原因就是,子进程进程具有唯一性,因为子进程只能有一个进程...,究其原因就是因为程序运行过程,出现了两个进程,也就是两个执行流,才导致了分支语句“同时执行”。...是shell当中一个变量,该变量永远记录最近一个进程命令行执行完毕时对应退出码,变量名是?,取变量名是 ?...continue; 47 } 48 } 49 // 完成另一个内建命令echo运行,保证$?...模拟shell实现代码,cd到其他目录,pwd之后路径实际上是没有变化,因为pwd实际上pwd进程shell路径,而进程cwd路径始终是未改变,而执行cd命令是子进程,所以子进程

14.6K30

深入理解计算机系统:进程

[ system structure ] 进程(Process) 经典定义是一个执行程序实例,操作系统对一个正在运行程序一种抽象。并发运行,指的是一个进程指令和另一个进程指令交错执行。...1)调用进程进程),返回子进程PID; 2)创建进程进程返回0。 并发执行:父子进程是并发运行独立进程。 相同但是独立地址空间。...当进程回收已终止进程,内核将子进程退出状态传递给进程,然后抛弃已终止进程,此刻进程不复存在。 僵尸进程(zombie):一个终止了但还未被回收进程。...* 默认options=0,挂起调用进程,直到它等待集合一个进程终止。如果等待集合一个进程刚调用时刻就已经终止了,那么waitpid立即返回。返回已终止进程PID去除该子进程。...shell位每个作业创建一个独立进程组。进程组ID是取自job进程一个。 Ctrl + C发送SIGINT信号到前台进程一个进程终止前台作业。

1.2K91

python fork()多进程

例如,一个shell脚本会对找出正在运行程序退出代码感兴趣。进程不仅可以找出退出代码,还可以找出根据信号,进程是坏掉还是终止进程是通过os.wait()一个类似的调用来得到这些信息。...进程终止进程调用wait()之间这段时间,子进程被成为zombie进程。它停止了运行,但是内存结构还为允许进程执行wait()保持着。...如果有子进程等待,waitpid()返回一个进程PIDtuple和退出信息。否则,它产生一个异常。使用wait()waitpid()来搜集终止进程信息被称为收割(reaping)....这个函数把子进程进程ID返回给进程,还会把零值返回给子进程。 当某个进程终止时候,除非该进程进程调用了wait()waitpid(),否则终止信息会一直保持系统上。...因此使用foring程序必须确保进程终止时要调用wait()waitpid(),方法之一是信号处理程序,还可以使用轮询(polling),定期检查终止子程序。

2K20

Linux笔记(10)| 进程概述

如果进程调用了fork函数,那么父子进程同属一个进程组,进程为首进程 Shell通过管道执行连接起来应用程序,两个程序同属一个进程组,第一个程序为进程进程 进程组id:pgid,由首进程...pid决定 会话 作用:管理进程组 会话诞生 调用setsid函数,新建一个会话,应用程序作为会话一个进程,称为会话首进程 用户终端正确登录之后,启动shell时linux系统会创建一个会话...前台进程进程会占用会话所关联终端来进行,shell启动其他应用程序时,其他程序成为首进程 后台进程组 后台进程程序是不会占用终端shell进程里启动程序时,加上&符号可以指定程序运行在后台进程组里面...就算终退出,也可以继续在后台运行 如何来写一个守护进程 1.创建一个进程进程直接退出 方法通过fork()函数 2.创建一个会话,摆脱终端影响 方法通过setsid函数 3.改变守护进程的当前工作目录...-R:该进程正在运行。 -S:该进程处于睡眠状态,可被唤醒 -T:停止状态,可能是在后台暂停进程处于除错状态。 -X:死掉进程。 -Z:僵尸状态。 -N:低优先级。 -s:进程是会话首进程

65810

Shell:子shell概念

目录 shell环境 什么是子shellshell分类 shell环境 每个shell进程一个自己运行环境,不同Shell进程有不同Shell环境。...子Shell本质可以理解为Shell进程,子进程概念是由进程概念引申而来Linux系统,系统运行应用程序几乎都是从init(pid为1进程进程派生而来,所有这些应用程序都可以视为...不管是子进程还是子 Shell,都是“传子不”。...子shell分类 大致分为两类: sub shell:通过进程替换(cmd)、命令替换 child shell:通过以可执行文件方式运行shell脚本直接在当前shell启动shell...注释:使用 fork() 函数可以创建一个进程;除了 PID进程ID)等极少参数不同外,子进程一切都来自进程,包括代码、数据、堆栈、打开文件等,就连代码执行位置(状态)都是一样

1.3K30

命名空间介绍之五:用户命名空间

如何解释 ID-outside-ns 取决于打开文件 /proc/PID/uid_map( /proc/PID/gid_map)进程是否进程 PID 一个用户命名空间中: 如果两个进程位于同一命名空间中...--- 另一个命名空间(即运行 demo-userns 进程用户命名空间)运行 shell 终端,并在 demo-userns 创建新用户命名空间中为子进程创建一个用户 ID 映射: $...切换到另一个终端窗口时,我们为用户命名空间中组 ID 1000 创建一个到新用户命名空间中组 ID 0 映射: $ echo '0 1000 1' > /proc/4713/gid_map 回到运行...该程序使用 clone() 新命名空间中创建一个进程,并在子进程执行一个 shell 命令。...我们可以通过创建几个运行 shell 用户命名空间,检查命名空间中进程 uid_map 文件来说明这一点。

3.3K10

操作系统课设详细解答

(2)通过创建进程、观察正在运行进程终止进程程序设计和调试操作,进一步熟悉操作系统进程概念,理解 Windows 进程“一生”。...fork()原型如下:pid_t fork(void);fork 建立一个进程进程继续运行,子进程同样位置执行同样程序。...实验2-2结果分析:从main()函数开始,进程创建进程,首先判断子进程是否创建成功,如果pid<0则创建进程失败,当pid=0时,运行进程,输出系统当前目录。...Linux利用fork建立一个进程进程继续运行,子进程同样位置执行同样程序。...对于进程,fork()返回子进程 pid, 对于子进程,fork()返回 0,出错时返回-1,while((x=fork())==-1)这句话是用来判断子进程是否创建成功,而且当x=0时运行进程

1K20

Python Subprocess库详解

简介 Subprocess库是Python中用于创建和管理子进程标准库。它提供了一个强大而灵活接口,使得你可以Python启动新进程、连接它们输入和输出,并与它们进行交互。...超时处理 实际应用,我们可能希望设置子进程最长运行时间,以避免因子进程无法正常退出而导致进程一直等待。...使用管道进行进程间通信 Subprocess库允许你使用管道(pipes)进行进程间通信。这在需要将一个进程输出传递给另一个进程时非常有用。...子进程信号处理 Subprocess库还允许你进程处理子进程信号,例如在进程捕获子进程Ctrl+C信号。...stdin参数被设置为一个打开文件对象,从文件读取输入递给进程

1.3K21

【小家运维】达到Linux第三阶段常用命令笔记记录—Part Ⅲ

当终端接口检测到网络连接断开时,会给给控制进程(会话期首进程)发送一个挂断信号(终止程序信号) 如果会话期首进程终止,则该信号发送到该会话期前台进程组,从而导致进程停止 因此当网络断开终端窗口关闭后...假设你和朋友不同地点以相同用户登录一台机器,然后你创建一个screen会话,你朋友可以在他终端上命令(注意此处使用命令必须是screen -x): screen -x pid 然后你自己也使用相同命令进入到这个...如果后台中有多个命令,可以用bg %jobnumber将选中命令调出,%jobnumber是通过jobs命令查到后台正在执行命令序号(不是pid) bg 将进程搬到后台运行(Background...shell不能使用子shell定义变量和环境变量。...运行,而source则是在当前shell环境运行

1.8K20

【Linux】进程控制

1、shell 初步实现 2、什么是当前路径 3、内建命令/外部命令 4、shell 最终实现 一、进程创建 1、再谈 fork 函数 我们 进程概念与进程状态 对 fork 函数进行了初步介绍与使用...---- 二、进程终止 1、进程退出码 我们运行一个进程是为了让该进程完成某一项任务,而既然是完成任务,就需要对任务执行结果正确性进行标定;进程退出码作用就是就是标定一个进程执行结果是否正确,不同退出码表示不同执行结果...我们创建一个进程目的是为了让其帮我们完成某种任务,而既然是完成任务,进程结束前就应该返回任务执行结果,供进程或者操作系统读取。...进程程序替换是指进程用 fork 创建进程后,子进程通过调用 exec 系列函数来执行另一个程序;当进程调用某一种 exec 函数时,该进程用户空间代码和数据完全被新程序替换,然后从新程序启动例程开始执行.../mybin", NULL, environ); //传递环境变量 ---- 五、实现一个简易 shell 1、shell 初步实现 在学习了进程创建进程终止进程等待以及进程程序替换系列进程控制相关知识后

4K00

按下ls -l *.py并回车,shell都为我们做了什么?

所以为了解决这个问题,shell 进程执行命令。因此,一旦进程内执行完成,进程就会收到信号并且程序流继续。所以为了执行命令,shell 使用 fork() 创建一个进程。...(fork 声明#include pid_t fork(void); fork() 通过复制调用进程创建一个进程。新进程称为子进程。调用进程称为进程。...fork() 进程返回子进程进程 ID,进程返回 0: { char *command, *command_argv[50], **env; pid_t child_pid; int...pid_t wait(int *wstatus); wstatus:是一个指向整数指针,可以用来标识子进程是如何终止shell 进程内执行命令,然后 wait() 等待子进程完成。...所以这样用户就可以得到命令结果,并且可以 shell 显示其提示后输入另一个命令。

67220

BashShell变量

var=value export var 在当前进程创建全局变量在当前进程所有子进程中都是可见进程创建全局变量在当前进程是不可见。...进程修改全局变量只对子进程及其更下层进程有效,对进程是无效,即子进程修改无法反映到进程进程全局变量仍然保持原样。 总而言之,即全局变量增删改查都只是向下单层单向独立继承。...其实也好理解,因为不同进程之间各个参数都是独立,因此只有创建进程时候存在进程到子进程变量继承,创建后两个进程之间变量就是完全独立,互不影响。...进程 PID PROMPT_COMMAND 设置了的话,命令行主提示符显示之前会执行这条命令 PROMPT_DIRTRIM 用来定义当启用了 \w \W 提示符字符串转义时显示尾部目录名数量...需要注意是,在当前 Shell 创建Shell ,指仍然当前 Shell PID;而在孩子 Shell 则是孩子 Shell PID

2.4K30
领券