Remember to maintain security and privacy. Do not share sensitive information. Procedimento.com.br may make mistakes. Verify important information. Termo de Responsabilidade
No sistema operacional Linux, o conceito de grupos de processos é fundamental para o gerenciamento de processos e sinais. Um grupo de processos é um conjunto de processos que podem ser geridos coletivamente. Isso é especialmente útil em ambientes de shell e scripts, onde você pode querer controlar um conjunto de processos como uma unidade.
No Linux, cada processo tem um ID de processo (PID) e pode pertencer a um grupo de processos. O ID do grupo de processos (PGID) é o mesmo que o PID do processo líder do grupo. Todos os processos em um grupo de processos compartilham o mesmo PGID.
Grupos de processos são úteis para enviar sinais para um conjunto de processos. Por exemplo, você pode enviar um sinal de interrupção (SIGINT) para todos os processos em um grupo, o que é comum quando você pressiona Ctrl+C
em um terminal.
Para criar um grupo de processos, você pode usar o comando setsid
ou manipular diretamente os IDs de processo em um script. Aqui está um exemplo simples usando bash
:
#!/bin/bash
# Inicia um novo grupo de processos
setsid bash -c 'sleep 100 & sleep 200 & wait'
Neste exemplo, setsid
inicia um novo grupo de processos e executa dois comandos sleep
em segundo plano. Esses processos sleep
agora pertencem ao mesmo grupo de processos.
Você pode enviar sinais para um grupo de processos usando o comando kill
com um número de PGID negativo:
# Suponha que o PGID seja 1234
kill -SIGINT -1234
O comando acima envia o sinal SIGINT
para todos os processos no grupo de processos com PGID 1234.
Para verificar a qual grupo de processos um processo pertence, você pode usar o comando ps
:
ps -o pid,pgid,comm
Este comando lista o PID, PGID e o nome do comando para cada processo em execução.
Grupos de processos são uma ferramenta poderosa no gerenciamento de processos no Linux. Eles permitem que você controle e gerencie processos de forma mais eficaz, especialmente em scripts e ambientes de linha de comando.