Process
流程組和工作之間的區別?
程序組和作業有什麼區別?如果我輸入
pr * | lpr
,那麼它既是一個程序組又是一個工作嗎?程序組 ID 和作業 ID 之間究竟有什麼區別?編輯:我知道它看起來類似於什麼是工作和流程之間的區別?, 但略有不同。另外,我從這個執行緒中沒有理解這個概念。
程序組是一個Unix 核心概念。它不會經常出現。您可以通過使用否定參數呼叫
kill
系統呼叫或實用程序來向組中的所有程序發送信號。創建程序時(使用
fork
),它與父程序保持在同一個程序組中。一個程序可以通過呼叫setpgid
或移動到另一個組中setpgrp
。這通常由 shell 在啟動外部程序時執行,然後在執行execve
載入外部程序之前執行。程序組的主要用途是,當您按下
Ctrl+C
,Ctrl+Z
或者Ctrl+\
殺死或暫停終端中的程序時,終端會向整個程序組(前台程序組)發送信號。細節相當複雜,主要是 shell 或核心實現者感興趣的;POSIX 標準的通用終端介面章節是一個很好的介紹(你確實需要一些 unix 程式背景)。Jobs 是 shell 的一個內部概念。在簡單的情況下,shell 中的每個作業對應於核心中的一個程序組。