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

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

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

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

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

相关推荐
tntxia20 小时前
linux curl命令详解_curl详解
linux
扛枪的书生1 天前
Linux 网络管理器用法速查
linux
顺风尿一寸1 天前
Java Socket 内核之旅:从 SocketChannel.read() 到 tcp_recvmsg 与 epoll 的完整调用链路
linux
XIAOHEZIcode1 天前
Ubuntu 终端美化全栈指南:Bash 到 Kitty 踩坑实录
linux·ubuntu·命令行
唐青枫1 天前
别再只会用 cron:Linux systemd Timer 定时任务实战详解
linux
AlfredZhao3 天前
生产环境里,为什么不建议把普通端口直接暴露到公网?
linux·https·443·80
戴为沐4 天前
Linux内存扩容指南
linux
zylyehuo5 天前
Linux 彻底且安全地删除文件
linux
用户805533698035 天前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297915 天前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux