iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux进程间的关系介绍
  • 338
分享到

Linux进程间的关系介绍

2023-06-13 03:06:57 338人浏览 泡泡鱼
摘要

这篇文章主要讲解了“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</p><p>  PID  PGID  PPID COMMAND
17763 17763 17751 bash
18534 18534 17763 ps
18535 18534 17763 cat


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

Linux进程间的关系介绍

图中箭头表示父进程通过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进程间的关系介绍”的内容了,经过本文的学习后,相信大家对Linux进程间的关系介绍这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Linux进程间的关系介绍

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

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

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

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

下载Word文档
猜你喜欢
  • Linux进程间的关系介绍
    这篇文章主要讲解了“Linux进程间的关系介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux进程间的关系介绍”吧!Linux的进程相互之间有一定的关系。比如说,在Linux进程基础...
    99+
    2023-06-13
  • Linux系统编程之进程介绍
    我们平时写的 C 语言代码,通过编译器编译,最终它会成为一个可执行程序,当这个可执行程序运行起来后(没有结束之前),它就成为了一个进程。一、进程概述...
    99+
    2023-06-05
  • 关于Rocky Linux的相关介绍
    这篇文章主要介绍了关于Rocky Linux的相关介绍,具有一定借鉴价值,需要的朋友可以参考下。下面就和我一起来看看吧。Rocky Linux是一个社区企业操作系统,其下游合作伙伴已改变方向,旨在与美国顶级企业Linux发行版实现100%错...
    99+
    2023-06-08
  • Linux进程的介绍及创建方法
    这篇文章主要介绍“Linux进程的介绍及创建方法”,在日常操作中,相信很多人在Linux进程的介绍及创建方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux进程的介绍及创建方法”的疑惑有所帮助!接下来...
    99+
    2023-06-06
  • python中进程间通信详细介绍
    目录进程间通信(IPC)管道通信(Pipe)1.通信原理2. 实现方法共享内存1.通信原理2.实现方法信号量(信号灯集)1.通信原理2. 实现方法3.代码演示进程间通信(IPC) 必...
    99+
    2024-04-02
  • Linux关机命令介绍
    本篇内容主要讲解“Linux关机命令介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux关机命令介绍”吧!linux下常用的关机命令有:shutdown、halt、poweroff、in...
    99+
    2023-06-10
  • Linux中进程之间的父子关系是什么
    在Linux中,进程之间的父子关系是通过进程ID(PID)来建立的。每个进程都有一个父进程,除了第一个进程(init进程)外,其他进...
    99+
    2024-04-02
  • Metrics, tracing 和 logging的关系介绍
    这篇文章主要介绍“Metrics, tracing 和 logging的关系介绍”,在日常操作中,相信很多人在Metrics, tracing 和 logging的关系介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对...
    99+
    2023-06-19
  • python之操作系统介绍,进程的创建
    操作系统(英语:operating system,缩写作 OS)是管理计算机硬件与软件资源的计算机程序,同时也是计算机系统的内核与基石。操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系...
    99+
    2023-01-30
    进程 操作系统 python
  • Shell时间date相关的命令介绍
    这篇文章主要讲解了“Shell时间date相关的命令介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell时间date相关的命令介绍”吧!date +%Fdate ...
    99+
    2023-06-09
  • Linux操作系统介绍
    1,Linux操作系统介绍**什么是操作系统操作系统(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行。2,Li...
    99+
    2023-06-05
  • Linux进程关系是怎样的
    本篇内容主要讲解“Linux进程关系是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux进程关系是怎样的”吧!Linux的进程相互之间有一定的关系。比如说,在Linux进程基础中,我...
    99+
    2023-06-05
  • php时间戳的转换的相关介绍
    时间戳是指Unix操作系统的时间格式,它基于1970年01月01日00时00分00秒(UTC/GMT)的秒数。由于这种格式易于计算和比较,因此时间戳被广泛用于网络编程和数据库应用中。在PHP中,时间戳可以通过简单的函数调用而轻松地转换为可读...
    99+
    2023-05-14
    php
  • linux系统的ftp命令介绍
    本篇内容主要讲解“linux系统的ftp命令介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux系统的ftp命令介绍”吧!FTP命令是Internet用户使用最频繁的命令之一,不论是在D...
    99+
    2023-06-13
  • Linux系统开机启动过程介绍
    本篇内容主要讲解“Linux系统开机启动过程介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统开机启动过程介绍”吧!按下电源按钮的直到欢迎页出来之后,linux总共做的事可以分为五...
    99+
    2023-06-13
  • JavaScript、Ajax、jQuery三者的关系介绍
    本篇内容介绍了“JavaScript、Ajax、jQuery三者的关系介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,...
    99+
    2024-04-02
  • Linux的启动流程介绍
    这篇文章主要讲解了“Linux的启动流程介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Linux的启动流程介绍”吧!第一步、加载内核操作系统接管硬件以后,首先读入 /boot 目录下的内...
    99+
    2023-06-06
  • linux shell数组的相关知识介绍
    本篇内容主要讲解“linux shell数组的相关知识介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux shell数组的相关知识介绍”吧!数组的声明:1)array[key]=val...
    99+
    2023-06-09
  • 详细介绍windows系统下创建进程、线程的过程
    进程(Process)是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位。程序只是一组指令的有序集合,它本身没有任何运行的含义,只是一个静态实体。而进程则不同,它是程序在某个...
    99+
    2023-06-02
    windows 创建进程 线程 过程 系统 进程
  • 怎么进行Java Socket编程相关源代码的介绍
    今天就跟大家聊聊有关怎么进行Java Socket编程相关源代码的介绍,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Java Socket编程在不断发展中有不少的问题存在,下面我们就...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作