Unix中会话和进程组的用途和意义?

2023-12-24

Unix 进程有一个会话ID并且是一部分进程组- 可以使用以下功能更改/查询setsid()/getpgrp().

然而,一个概念进程组 and session总是让我困惑,有人能解释一下不同的会话和进程组提供什么意义吗?为什么/何时要创建一个新会话或将多个进程放在同一会话和/或进程组中?


A 进程组是可以同时发出信号的相关进程的集合。

A session是进程组的集合,这些进程组要么附加到单个终端设备(称为控制终端)或未连接到任何终端。

会话用于作业控制:会话中的进程组之一是前台进程组,可以通过终端控制字符发送信号。您可以将与控制终端的会话视为对应于该终端上的“登录”。 (守护进程通常通过创建一个没有控制终端的新会话来使自己与任何控制终端解除关联。)

例如如果你跑some_app从 shell 中,shell 为其创建一个新的进程组,并使其成为会话的前台进程组。 (some_app可能会创建一些子进程;默认情况下,它们将属于同一进程组。)如果您然后按^Z, some_app的进程组收到停止它的信号; shell的进程组再次切换为前台进程组。然后例如bg %1会开始some_app再次运行进程组,但保持其在后台运行。


The POSIX.1-2008标准 http://pubs.opengroup.org/onlinepubs/9699919799/是相当可读的(至少,我认为是这样!) - 看看定义 http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html以及相关章节《通用终端接口》 http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap11.html#tag_11章节。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Unix中会话和进程组的用途和意义? 的相关文章

  • awk: hping: 打印 icmp 发起/接收之间的差异

    我有以下输出hping http ports su net hping在 OpenBSD 上 hping icmp ts www openbsd org HPING www openbsd org re0 129 128 5 194 icm
  • 创建 jar 文件 - 保留文件权限

    我想知道如何创建一个保留其内容的文件权限的 jar 文件 我将源代码和可执行文件打包在一个 jar 文件中 该文件将在使用前提取 人们应该能够通过运行批处理 shell 脚本文件立即运行示例和演示 然后他们应该能够修改源代码并重新编译所有内
  • 如何执行“sudo nvm”?

    在我的 Mac 上 我想将一些需要 su 权限的包迁移到另一个节点版本 我使用 homebrew 安装 nvm 现在我需要执行 sudo nvm 或 reinstall packages将失败 me MacBook sudo nvm sud
  • awk/Unix 分组依据

    有这个文本文件 name age joe 42 jim 20 bob 15 mike 24 mike 15 mike 54 bob 21 试图得到这个 计数 joe 1 jim 1 bob 2 mike 3 Thanks awk F NR
  • 两种情况或 if 哪个更快? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我必须制作一个 非常 轻的脚本 它将接受用户的选项并调用脚本中的函数来执行一些任务 现在我可以使用 IF 和 CASE 选项 但我想知道两
  • 针对库编译时出现“未定义引用”错误

    我在代码中添加了第三方库 但在运行时遇到这样的错误make 请帮助我理解这个错误 text 0x9b4 undefined reference to snd strerror home bet Tent tun app Common hl
  • Java:执行 /cmd /c start path-with-spaces\program.exe

    我已经阅读了很多有关该问题的内容 但我找到的答案并不完全有效 我尝试运行这段代码 String args cmd c start C Program Files XML Marker xmlmarker exe Runtime rt Run
  • Process.Close() 不会终止创建的进程,c#

    我编写了一个 C 应用程序 它使用System Diagnostics Process类来创建进程 使用 Process P1 new Process P1 FileName myexe exe 和其他适当的设置 我已将其链接到一个运行大约
  • 如何在 Bash 中给定超时后终止子进程?

    我有一个 bash 脚本 它启动一个子进程 该进程时不时地崩溃 实际上是挂起 而且没有明显的原因 闭源 所以我对此无能为力 因此 我希望能够在给定的时间内启动此进程 如果在给定的时间内没有成功返回 则将其终止 有没有simple and r
  • PowerShell 中的 ProcessStartInfo 和进程 - 身份验证错误

    我有使用 ProcessStartInfo 和 Process 调用另一个脚本并返回该脚本的输出的代码 不幸的是 我遇到了错误 并且不确定如何解决这些问题 script1 ps1 abc args startInfo NULL proces
  • android:进程和进程名称

    我试图理解android process属性 Ref says http developer android com guide topics manifest application element html proc 如果分配给该属性的
  • 我如何知道 C 程序的可执行文件是在前台还是后台运行?

    在我的 C 程序中 我想知道我的可执行文件是否像这样在前台运行 a out 或者像这样 a out 如果你是前台工作 getpgrp tcgetpgrp STDOUT FILENO or STDIN FILENO or STDERR FIL
  • 监视目录的更改

    很像一个类似的问题 https stackoverflow com questions 112276 directory modification monitoring 我正在尝试监视 Linux 机器上的目录以添加新文件 并希望在这些新文
  • 安装 R 包。包含目录为空。开发标头

    我目前正在尝试运行一些最初在 2 11 0 下运行的 R 代码 我使用的 R 版本 2 14 1 无法运行该代码 我不熟悉 R 及其向后兼容性 据我所知 我的问题可能与版本无关 我会很高兴得知这是我做错的事情 其余的代码是无关紧要的 即使我
  • 如何在 Powershell 中设置低 I/O(“后台”)优先级

    There s 这个powershell脚本 https stackoverflow com a 4302 1266650它可以将进程的优先级从 空闲 设置为 实时 但某些工具提供另一个优先级 该优先级甚至会降低进程的优先级 如何在 Pow
  • 在 UNIX 中删除相同的文件

    我正在处理大量 30 000 个 大小约为 10MB 的文件 其中一些 我估计 2 实际上是重复的 我只需要为每个重复的对 或三元组 保留一个副本 您能建议我一种有效的方法吗 我正在unix上工作 您可以尝试使用此代码片段在删除之前先获取所
  • fork 和 exec 之间的区别

    两者有什么区别fork and exec 指某东西的用途fork and exec它体现了 UNIX 的精神 它提供了一种非常简单的方法来启动新进程 The fork调用基本上复制了当前进程 在almost任何方式 并非所有内容都会被复制
  • 启动 Firefox 并等待其关闭

    Question 我想启动 Firefox 网络浏览器作为访问特定网站的过程 然后等到它关闭 一种特殊情况是浏览器可能已经打开并正在运行 因为用户可能已经访问过某个网站 在这种情况下 浏览器可能会在现有窗口中打开一个新选项卡 并且新启动的进
  • 带有存储在文件中的通配符的 grep

    我希望 grep 通过读取需要从文本文件中过滤掉的内容来过滤掉行 这是我给 grep 的内容 它存储在foo txt Users 1337 X Users 1337 R Users 1337 W 这是它应该过滤的内容 它存储在bar txt
  • 使用 ProcessBuilder 运行 shell 脚本

    我正在尝试使用 Java 和 ProcessBuilder 运行脚本 当我尝试运行时 我收到以下消息 error 2 没有这样的文件或目录 我不知道我做错了什么 但这是我的代码 ps 我尝试只执行不带参数的脚本 错误是相同的 String

随机推荐

  • 操作系统级别的睡眠是如何实现的?

    我只是感兴趣如何sleep time in ms 是在 C 库中实现的 或者基本上是在操作系统级别实现的 我猜 可能是基于处理器速度 你做了一个 nop 的 while 循环 我不确定睡眠时间是否准确 处理器中的任何特殊寄存器 您在其中写入
  • ASIHTTPRequest 中 POST 中的正文为空

    基本上 我发送一个带有空数据正文的 POST 请求 ASIHTTPRequest request ASIHTTPRequest alloc init request setURL NSURL URLWithString escapedUrl
  • Docker 未知速记标志:-aq 中的“a”)

    我有多个正在运行的 docker 版本 18 09 0 构建 4d60db4 容器 我希望立即停止它们 这篇博文 http blog baudson de blog stop and remove all docker containers
  • 将文件名设置为 Blob 文件

    我想向我的 Blob 文件添加一个文件名 但我真的不知道该怎么做 这是我目前的代码 onClick var myHeader new Headers myHeader append Content Type text plain fetch
  • 如何加密 web.config 中的一项

    ASP NET 4 我用过RSA密钥加密 http msdn microsoft com en us library ff650304 aspx paght000006 webfarmscenarios用于我的网络场的 web config
  • ThreadLocal - 用作带有 spring-boot 的 REST API 的上下文信息

    我有一些spring boot应用程序 它公开了 REST API 提到的 REST API 是由spring security 一切都很好 但是现在我需要设置上下文 用于服务请求 设置上下文是指根据用户上下文选择数据源 关键是Routin
  • Unity Shader - 如何有效地重新着色特定坐标?

    首先 请允许我解释一下我所得到的内容 然后我将讨论接下来我想要弄清楚的内容 我有什么 我有一个带纹理的自定义网格 其一些边缘与 Unity 中的整数世界坐标完全对齐 在网格中 我添加了自己的粗略但有效的自定义表面着色器 如下所示 Shade
  • Swift Closure 中的可选链接,返回类型必须为 Void

    我正在创建一个脚本的双向链接列表 MSScripts 应该有自己的run 实现 然后他们调用下一个脚本 rscript 当他们准备好时 我想创建的脚本之一只是一个延迟 它看起来像这样 class DelayScript MSScript v
  • Django - ManyToManyRelation 中的级联删除

    使用以下相关模型 一篇博客文章可以有多个修订版 class BlogEntryRevision models Model revisionNumber models IntegerField title models CharField m
  • lua 中的准引用/引用?

    在 Lisp 中 我可以 a b c d e f g 意思是 look up b c d e f g look up a apply value of a to above 那么 我还可以 a b c d e f g 这相当于 list a
  • $_ 与命名输入或循环参数有何不同?

    由于我经常使用 我想更好地理解它的用法 据我理解和使用 是隐式值的全局变量 由于 似乎无论如何都已设置 是否有理由在 上使用命名循环变量besides可读性 在什么情况下 是全局变量很重要 所以如果我使用 for array print o
  • 后记 - 文档大小

    附言中如何设置页面大小 如何将文档旋转到宽度 Example 1 newpath 100 200 moveto 200 250 lineto 100 300 lineto 2 setlinewidth stroke showpage 谢谢
  • 如何在 Jenkins 中将安全类型从 SSL 更改为 TLS?

    我正在尝试设置 smtp 电子邮件通知 我可以看到 Gmail 部分工作正常 我想为我的 Office 365 配置它 smtp服务器 smtp office365 com 我们没有配置 SSL 相反 我们使用 TLS 如何在 Jenkin
  • 如何通过删除 NA 值的选项来融合 Pandas 中的数据框

    我有一个像这样的 Pandas 数据框 df pd DataFrame VAR1 V1 V2 V2 V3 V4 V4 V5 VAR2 C1 C1 C1 C2 C2 C2 C3 VAR3 S1 S2 S3 S4 VAR4 S3 S4 S5 S
  • 更改应用程序默认描述语言

    我正在将我的应用程序的新版本提交到应用程序商店 有没有办法更改 iTunesConnect 中的默认应用程序语言 假设我有法语作为默认描述语言 我需要更改default到英语 我怎么做 您的应用程序必须处于 准备销售 状态 然后 转到您的应
  • 是否可以根据变量标签选择列?

    对于非常广泛的数据集 是否可以使用变量标签来选择列 library expss data mtcars mtcars apply labels mtcars mpg Miles US gallon cyl Number of cylinde
  • 在Python中使用Windows换行符在Linux上高效读取csv文件

    下面是在windows下逐行读取csv文件的工作 f open filename r for line in f 但是当将 csv 文件复制到 Linux 服务器时 它失败了 应该提到的是 由于 csv 文件很大 性能是一个问题 因此 我担
  • C++ 嵌套迭代器

    可以使用像下面这样的嵌套迭代器吗 for vector
  • Google Play alpha/beta 测试的最大测试人员数量

    我的应用程序还没有发布 我可以通过 Google Play 测试我的应用程序的 Alpha Beta 测试人员的最大数量是多少 对于 iOS 每个构建有 1000 名外部测试人员 Google Play 的限制是多少 没有有效限制 尽管有G
  • Unix中会话和进程组的用途和意义?

    Unix 进程有一个会话ID并且是一部分进程组 可以使用以下功能更改 查询setsid getpgrp 然而 一个概念进程组 and session总是让我困惑 有人能解释一下不同的会话和进程组提供什么意义吗 为什么 何时要创建一个新会话或