Um grupo de processos é um conceito de kernel unix. Não aparece com muita frequência. Você pode enviar um sinal para todos os processos em um grupo, chamando a kill
chamada de sistema ou utilitário com um argumento negativo.
Quando um processo é criado (com fork
), ele permanece no mesmo grupo de processos como pai. Um processo pode ser movido para outro grupo chamando setpgid
ou setpgrp
. Isso é normalmente executado pelo shell quando inicia um processo externo, antes de ser executado execve
para carregar o programa externo.
O principal uso para grupos de processos é que quando você pressiona Ctrl+C
, Ctrl+Z
ou Ctrl+\
para matar ou suspender programas em um terminal , o terminal envia um sinal para todo um grupo de processos , o grupo de processos em primeiro plano . Os detalhes são bastante complexos e principalmente de interesse para implementadores de shell ou kernel; o capítulo General Terminal Interface do padrão POSIX é uma boa apresentação (você precisa de alguma programação unix fundo).
Jobs são um conceito interno para o shell. Nos casos simples, cada trabalho em um shell corresponde a um grupo de processos no kernel.