Linux系统下的终端,会话,shell,bash,进程组这几个概念的关系。

1.终端是指和shell交互的一个窗口,shell是命令解释器这一类软件的总称,而bash是shell其中的一个软件。所以打开终端这个窗口,其中运行的是bash这个shell软件。

2.每一个进程都属于某个进程组,进程组中有一个或多个进程,并且每个进程组都有独有的进程组ID。而会话包含多个进程组。会话中有一个首进程一般是bash。一般来讲只要不进行特殊的系统函数调用,一个bash上运行的所有进程都属于一个会话(包括这个bash)。

3.梳理一下这几个概念:当用户打开一个终端,那便会创建一个会话,并在此会话中启动一个shell进程(bash),这个shell进程便会成为这个会话的首进程,随后创建的进程均是首进程的子进程,并且被分配到不同的进程组中。

4.一个终端断开时,系统会给这个会话的首进程(bash)发送一个信号,而首进程会紧接着将这个信号分发给同会话的其他进程(他的子进程),其他进程收到后便会关闭,所有子进程关闭后,bash也会关闭。

相关推荐
云飞云共享云桌面4 小时前
三维设计办公资源如何共享集中和安全管控?
运维·服务器·数据库·安全·自动化·制造
郝学胜-神的一滴4 小时前
Qt QPushButton 样式完全指南:从基础到高级实现
linux·开发语言·c++·qt·程序人生
傲世(C/C++,Linux)4 小时前
Linux系统编程——进程通信之有名管道
android·linux·运维
Theliars5 小时前
Ubuntu 上使用 VSCode 调试 C++ (CMake 项目) 指南
c++·vscode·ubuntu·cmake
权泽谦5 小时前
从 Linux 到 Docker:一条通向 DevOps 的进阶之路
linux·docker·devops
yuanManGan5 小时前
走进Linux的世界:进程优先级
linux·运维·服务器
一叶知秋yyds5 小时前
linux 系统查看进程占用物理内存大小方法
linux·运维·服务器
JiMoKuangXiangQu5 小时前
bash 启动程序的流程
linux·bash·进程启动
大志若愚YYZ5 小时前
嵌入式Linux——Shell脚本编程
linux
大志若愚YYZ5 小时前
嵌入式Linux学习——环境变量与配置文件的关系(⭐难理解)
linux·学习