Eine Prozessgruppe ist ein Unix-Kernel-Konzept. Es kommt nicht sehr oft vor. Sie können ein Signal an alle Prozesse in einer Gruppe senden, indem Sie den kill
Systemaufruf oder das Dienstprogramm mit einem negativen Argument aufrufen .
Wenn ein Prozess erstellt wird (mit fork
), bleibt er in derselben Prozessgruppe wie sein übergeordnetes Element. Ein Prozess kann durch Aufrufen von setpgid
oder in eine andere Gruppe verschoben werden setpgrp
. Dies wird normalerweise von der Shell ausgeführt, wenn sie einen externen Prozess startet, bevor sie ausgeführt wird execve
, um das externe Programm zu laden.
Die Hauptanwendung für Prozessgruppen ist , dass , wenn Sie drücken Ctrl+C
, Ctrl+Z
oder Ctrl+\
zu töten oder Programme in einem Terminal auszusetzen , wobei das Endgerät ein Signal an eine ganze Prozessgruppe sendet, die Gruppe Vordergrundprozess . Die Details sind ziemlich komplex und vor allem für Shell- oder Kernel-Implementierer von Interesse. Das Kapitel Allgemeine Terminalschnittstelle des POSIX-Standards ist eine gute Darstellung (Sie benötigen einige Unix-Programmierhintergründe).
Jobs sind ein internes Konzept für die Shell. In den einfachen Fällen entspricht jeder Job in einer Shell einer Prozessgruppe im Kernel.
Gilles 'SO - hör auf böse zu sein'
quelle