Acho que você está falando do PGID, que significa ID do grupo de processos .
Quando um processo é bifurcado, ele herda seu PGID de seu pai. O PGID muda quando um processo se torna um líder do grupo de processos , então seu PGID é copiado de seu PID. A partir de então, o novo filho processa o spawns e seus descendentes, herdam esse PGID (a menos que iniciem novos grupos de processos).
Em um shell com controle de tarefa, como a maioria dos shells interativos, cada trabalho é colocado em seu próprio grupo de processos. Se você executar um script de shell, o processo do shell executando o script será o líder do grupo, e o PGID será igual ao seu PID.
Em um shell sem controle de tarefa, como a maioria dos shells usados para executar scripts, os comandos são executados no grupo de processos do shell.
A sintaxe kill -- -N
mata todos os processos no grupo com PGID = N. Você não pode usá-lo com um PID arbitrário, apenas o PID de um líder do grupo de processos, já que esse é o PGID. Isto é essencialmente como o shell é
kill %jobid
A sintaxe funciona - traduz internamente %jobid
para o PGID do trabalho e envia o sinal para esse PGID.
Não existe uma maneira simples de executar um script em seu próprio grupo de processos a partir de outro script de shell. Veja Como definir o grupo de processos de um script de shell para algumas sugestões, no entanto.