iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux进程关系是怎样的
  • 508
分享到

Linux进程关系是怎样的

2023-06-05 15:06:03 508人浏览 薄情痞子
摘要

本篇内容主要讲解“linux进程关系是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux进程关系是怎样的”吧!Linux的进程相互之间有一定的关系。比如说,在Linux进程基础中,我

本篇内容主要讲解“linux进程关系是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux进程关系是怎样的”吧!

Linux的进程相互之间有一定的关系。比如说,在Linux进程基础中,我们看到,每个进程都有父进程,而所有的进程以init进程为根,形成一个树状结构。我们在这里讲解进程组和会话,以便以更加丰富的方式了管理进程。
 
进程组 (process group)

每个进程都会属于一个进程组(process group),每个进程组中可以包含多个进程。进程组会有一个进程组领导进程 (process group leader),领导进程的PID (PID见Linux进程基础)成为进程组的ID (process group ID, PGID),以识别进程组。

$ps -o pid,pgid,ppid,comm | cat

  PID  PGID  PPID COMMAND
17763 17763 17751 bash
18534 18534 17763 ps
18535 18534 17763 catPID为进程自身的ID,PGID为进程所在的进程组的ID, PPID为进程的父进程ID。从上面的结果,我们可以推测出如下关系:

图中箭头表示父进程通过fork和exec机制产生子进程。ps和cat都是bash的子进程。进程组的领导进程的PID成为进程组ID。领导进程可以先终结。此时进程组依然存在,并持有相同的PGID,直到进程组中最后一个进程终结。

我们将一些进程归为进程组的一个重要原因是我们可以将信号发送给一个进程组。进程组中的所有进程都会收到该信号。我们会在下一部分深入讨论这一点。
 
会话 (session)

更进一步,在shell支持工作控制(job control)的前提下,多个进程组还可以构成一个会话 (session)。bash(Bourne-Again shell)支持工作控制,而sh(Bourne shell)并不支持。

会话是由其中的进程建立的,该进程叫做会话的领导进程(session leader)。会话领导进程的PID成为识别会话的SID(session ID)。会话中的每个进程组称为一个工作(job)。会话可以有一个进程组成为会话的前台工作(foreground),而其他的进程组是后台工作(background)。每个会话可以连接一个控制终端(control terminal)。当控制终端有输入输出时,都传递给该会话的前台进程组。由终端产生的信号,比如CTRL+Z, CTRL+\,会传递到前台进程组。

会话的意义在于将多个工作囊括在一个终端,并取其中的一个工作作为前台,来直接接收该终端的输入输出以及终端信号。 其他工作在后台运行。

一个命令可以通过在末尾加上&方式让它在后台运行:

$ping localhost > log &

此时终端显示:

[1] 10141

括号中的1表示工作号,而10141为PGID

我们通过如下方式查询更加详细的信息:

$ps -o pid,pgid,ppid,sid,tty,comm

(tty表示控制终端)

信号可以通过kill

$kill -SIGTERM -10141

或者

$kill -SIGTERM %1

的方式来发送给工作组。上面的两个命令,一个是发送给PGID(通过在PGID前面加-来表示是一个PGID而不是PID),一个是发送给工作1(%1),两者等价。

一个工作可以通过$fg从后台工作变为前台工作:

$cat > log &

$fg %1

当我们运行第一个命令后,由于工作在后台,我们无法对命令进行输入,直到我们将工作带入前台,才能向cat命令输入。在输入完成后,按下CTRL+D来通知shell输入结束。

进程组(工作)的概念较为简单易懂。而会话主要是针对一个终端建立的。当我们打开多个终端窗口时,实际上就创建了多个终端会话。每个会话都会有自己的前台工作和后台工作。这样,我们就为进程增加了管理和运行的层次。在没有图形化界面的时代,会话允许用户通过shell进行多层次的进程发起和管理。比如说,我可以通过shell发起多个后台工作,而此时标准输入输出并不被占据,我依然可以继续其它的工作。如今,图形化界面可以帮助我们解决这一需求,但工作组和会话机制依然在Linux的许多地方应用。

到此,相信大家对“Linux进程关系是怎样的”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

--结束END--

本文标题: Linux进程关系是怎样的

本文链接: https://www.lsjlt.com/news/243531.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux进程关系是怎样的
    本篇内容主要讲解“Linux进程关系是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux进程关系是怎样的”吧!Linux的进程相互之间有一定的关系。比如说,在Linux进程基础中,我...
    99+
    2023-06-05
  • linux系统进程管理是怎样的
    本篇内容介绍了“linux系统进程管理是怎样的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、进程与线程的概念来源百度百科:进程(Proc...
    99+
    2023-06-22
  • Linux进程间的关系介绍
    这篇文章主要讲解了“Linux进程间的关系介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux进程间的关系介绍”吧!Linux的进程相互之间有一定的关系。比如说,在Linux进程基础...
    99+
    2023-06-13
  • Linux中进程之间的父子关系是什么
    在Linux中,进程之间的父子关系是通过进程ID(PID)来建立的。每个进程都有一个父进程,除了第一个进程(init进程)外,其他进...
    99+
    2024-04-02
  • Linux系统启动过程是怎样的
    今天就跟大家聊聊有关Linux系统启动过程是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。第三部分:系统初始化在init的配置文件中有这么一行:si::sysinit:/etc...
    99+
    2023-06-16
  • Linux发行版的CentOS与RHEL的关系是怎样的
    Linux发行版的CentOS与RHEL的关系是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。话说前几天,将RHEL5.1的yum源地址换成CentOS的,yum u...
    99+
    2023-06-16
  • Linux系统启动过程是怎么样的
    小编给大家分享一下Linux系统启动过程是怎么样的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在BIOS阶段,计算机的行为基本上被写死了,可以做的事情并不多;一...
    99+
    2023-06-28
  • Linux内核进程管理的基础是怎样的
    本篇文章为大家展示了Linux内核进程管理的基础是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。内核通过 task_struct 描述进程用命令 pstree 可以让内核以树形的结构把进程之间...
    99+
    2023-06-15
  • Linux系统启动流程是怎么样的
    这篇文章主要为大家展示了“Linux系统启动流程是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux系统启动流程是怎么样的”这篇文章吧。linux启动时我们会看到许多启动信息,Li...
    99+
    2023-06-27
  • Linux中Kill命令的进程调度是怎样的
    本篇文章为大家展示了Linux中Kill命令的进程调度是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一丶进程管理Linux 是一种动态系统,能够适应不断变化的计算需求。Linux 计算需求的...
    99+
    2023-06-28
  • Linux内核源码的进程调度是怎样的
    这篇“Linux内核源码的进程调度是怎样的”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux内核源码的进程调度是怎样的...
    99+
    2023-06-16
  • linux系统怎样进行更新
    这篇文章将为大家详细讲解有关linux系统怎样进行更新,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。大家都知道windows系统有一个自动更新,那么,linux系统又应该怎样更新呢?方法一:...
    99+
    2023-06-13
  • Linux怎样查询tomcat进程
    Linux怎样查询tomcat进程,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在Linux系统中查询tomcat进程命令是ps -ef|grep tomcat,但是很多小伙伴...
    99+
    2023-06-28
  • Linux系统中的Mysql安装过程是怎样的
    这期内容当中小编将会给大家带来有关Linux系统中的Mysql安装过程是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Mysql是 Oracle 旗下得一款产品,属于关系型数据库,在 WE...
    99+
    2023-06-28
  • php线程与进程的关系是什么
    PHP是一种脚本语言,通常被解释器逐行执行。在PHP中,线程和进程是操作系统级别的概念,与PHP本身的语言特性关系不大。线程是进程的...
    99+
    2023-09-27
    php
  • Linux系统如何关闭不用的进程
    这篇文章将为大家详细讲解有关Linux系统如何关闭不用的进程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文叙述怎么关闭Linux操作系统中的一个进程。打开ubuntu操作系统,ctrl+alt+t -...
    99+
    2023-06-10
  • oracle后台进程是怎样的
    这篇文章将为大家详细讲解有关oracle后台进程是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。oracle后台进程伴随实例的启动而启动,他们主要是维...
    99+
    2024-04-02
  • Linux系统怎样关闭防火墙
    这篇文章将为大家详细讲解有关Linux系统怎样关闭防火墙,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在Linux系统中搭建集群为了保证进程之间的通信需要把防火墙关闭,那么如何关闭防火墙?1...
    99+
    2023-06-28
  • Linux操作系统启动流程是怎么样的
    这篇文章主要为大家展示了“Linux操作系统启动流程是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Linux操作系统启动流程是怎么样的”这篇文章吧。Linux操作系统启动流程02 Ce...
    99+
    2023-06-15
  • 在Linux系统中安装Docker的过程是怎样的
    在Linux系统中安装Docker的过程是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在这篇博客中,我将引导您通过简单的步骤完成安装 Docker 的过程,安装dock...
    99+
    2023-06-22
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作