.\" -*- coding: UTF-8 -*- .\" Copyright 1983-1991, Regents of the University of California. .\" Copyright 2007, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: BSD-4-Clause-UC .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH setpgid 2 "8 fevereiro 2026" "Linux man\-pages 6.18" .SH NOME setpgid, getpgid, setpgrp, getpgrp \- define/obtém o grupo do processo .SH BIBLIOTECA Biblioteca C Padrão (\fIlibc\fP,\ \fI\-lc\fP) .SH SINOPSE .nf \fB#include \fP .P \fBint setpgid(pid_t \fP\fIpid\fP\fB, pid_t \fP\fIpgid\fP\fB);\fP \fBpid_t getpgid(pid_t \fP\fIpid\fP\fB);\fP .P \fBpid_t getpgrp(void);\fP /* versão POSIX.1 */ \fB[[deprecated]] pid_t getpgrp(pid_t \fP\fIpid\fP\fB);\fP\f[R] /* versão BSD */\fR .P \fBint setpgrp(void);\fP /* Versão System V */ \fB[[deprecated]] int setpgrp(pid_t \fP\fIpid\fP\fB, pid_t \fP\fIpgid\fP\fB);\fP\f[R] /* Versão BSD */\fR .fi .P .RS -4 Requisitos de macro de teste de recursos para o glibc (consulte \fBfeature_test_macros\fP(7)): .RE .P \fBgetpgid\fP(): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* Desde o glibc 2.12: */ _POSIX_C_SOURCE >= 200809L .fi .P \fBsetpgrp\fP() (POSIX.1): .nf .\" || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE >= 500 || /* Desde o glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE .fi .P \fBsetpgrp\fP() (BSD), \fBgetpgrp\fP() (BSD): .nf [Estes estão disponíveis apenas antes do glibc 2.19] _BSD_SOURCE && ! (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE || _GNU_SOURCE || _SVID_SOURCE) .fi .SH DESCRIÇÃO Todas essas interfaces estão disponíveis no Linux e são usadas para obter e definir o ID do grupo de processos (PGID) de um processo. As formas preferidas, especificadas por POSIX.1, de fazer isso são: \fBgetpgrp\fP(void), para recuperar o PGID do processo de chamada; e \fBsetpgid\fP(), para definir o PGID de um processo. .P \fBsetpgid\fP() define o PGID do processo especificado por \fIpid\fP para \fIpgid\fP. Se \fIpid\fP é zero, a ID de processo do processo atual é usado. Se \fIpgid\fP é zero, o PGID do processo especificado por \fIpid\fP é tornado o mesmo que seu ID de processo. Se \fBsetpgid\fP() é usado para mover processo de um grupo de processo para outro (como é feito por alguns shells ao criar canais de processamento), ambos grupos de processo devem ser partes da mesma sessão (consulte \fBsetsid\fP(2) e \fBcredentials\fP(7)). Neste caso, o \fIpgid\fP especifica um grupo de processo existente a ser unido e o ID da sessão daquele grupo dever combinar com a ID da sessão do processo que é unido. .P A versão POSIX.1 de \fBgetpgrp\fP(), que não leva argumentos, retorna o PGID do processo de chamada. .P \fBgetpgid\fP() retorna o PGID do processo especificado por \fIpid\fP. Se \fIpid\fP é zero, o ID de processo do processo atual é usada. (Recuperar o PGID de um processo diferente do chamador raramente é necessário, e o \fBgetpgrp\fP() POSIX.1 é o preferido para essa tarefa.) .P O \fBsetpgrp\fP() do estilo System\ V, que leva nenhum argumento, é equivalente a \fIsetpgid(0,\ 0)\fP. .P A chamada \fBsetpgrp\fP() específica do BSD, que leva os argumentos \fIpid\fP e \fIpgid\fP, é uma função de wrapper que chama .P .in +4n .EX setpgid(pid, pgid) .EE .in .P .\" The true BSD setpgrp() system call differs in allowing the PGID .\" to be set to arbitrary values, rather than being restricted to .\" PGIDs in the same session. Desde o glibc 2.19, a função \fBsetpgrp\fP() específica do BSD não é mais exposta por \fI\fP; as chamadas devem ser substituídas pela chamada \fBsetpgid\fP() mostrada acima. .P A chamada \fBgetpgrp\fP() específica do BSD, que leva um único argumento \fIpid\fP, é uma função de wrapper que chama .P .in +4n .EX getpgid(pid) .EE .in .P Desde o glibc 2.19, a função \fBgetpgrp\fP() específica do BSD não é mais exposta por \fI\fP; as chamadas devem ser substituídas por chamadas para \fBgetpgrp\fP() POSIX.1 que não leva argumentos (se a intenção for obter o PGID do chamador), ou com a chamada \fBgetpgid\fP() mostrada acima. .SH "VALOR DE RETORNO" Em caso de sucesso, \fBsetpgid\fP() e \fBsetpgrp\fP() retornam zero. Em caso de erro, \-1 é retornado e \fIerrno\fP é definido para indicar o erro. .P O \fBgetpgrp\fP() POSIX.1 sempre retorna o PGID do chamador. .P \fBgetpgid\fP(), e o \fBgetpgrp\fP() específico do BSD, retornam o grupo de processo em caso de sucesso. Em caso de erro, \-1 é retornado e \fIerrno\fP é definido para indicar o erro. .SH ERROS .TP \fBEACCES\fP Foi feita uma tentativa de alterar o ID do grupo de processo de um dos filhos do processo de chamada e o filho já havia executado um \fBexecve\fP(2) (\fBsetpgid\fP(), \fBsetpgrp\fP()). .TP \fBEINVAL\fP \fIpgid\fP é menor que 0 (\fBsetpgid\fP(), \fBsetpgrp\fP()). .TP \fBEPERM\fP Foi feita uma tentativa de mover um processo para um grupo de processos em uma sessão diferente, ou para alterar o ID do grupo de processos de um dos filhos do processo de chamada e o filho estava em uma sessão diferente, ou para alterar o ID do grupo de processos de um líder de sessão (\fBsetpgid\fP(), \fBsetpgrp\fP()). .TP \fBEPERM\fP O grupo de processos alvo não existe. (\fBsetpgid\fP(), \fBsetpgrp\fP()). .TP \fBESRCH\fP Para \fBgetpgid\fP(): \fIpid\fP não corresponde a nenhum processo. Para \fBsetpgid\fP(): \fIpid\fP não é o processo de chamada e não é filho do processo de chamada. .SH PADRÕES .TP \fBgetpgid\fP() .TQ \fBsetpgid\fP() .TQ \fBgetpgrp\fP() (sem argumento) POSIX.1\-2024. .TP \fBsetpgrp\fP() .TQ \fBgetpgrp\fP() (1 argumento) Nenhum. .SH HISTÓRICO .TP \fBgetpgid\fP() .TQ \fBsetpgid\fP() .TQ \fBgetpgrp\fP() (sem argumento) POSIX.1\-2001. .TP \fBsetpgrp\fP() (sem argumento) POSIX.1\-2001. Descontinuado no POSIX.1\-2008. Removido no POSIX.1\-2024. .TP \fBsetpgrp\fP() (2 argumentos) .TQ \fBgetpgrp\fP() (1 argumento) 4.2BSD. .SH NOTAS Um filho criado por meio de \fBfork\fP(2) herda o ID do grupo de processo de seu pai. O PGID é preservado em um \fBexecve\fP(2). .P Cada grupo de processo é um membro de uma sessão e cada processo é um membro da sessão da qual seu grupo de processo é um membro. (Veja \fBcredentials\fP(7).) .P Uma sessão pode ter um terminal de controle. A qualquer momento, um (e apenas um) dos grupos de processos na sessão pode ser o grupo de processos em primeiro plano para o terminal; os grupos de processos restantes estão em segundo plano. Se um sinal é gerado a partir do terminal (por exemplo, digitando a tecla de interrupção para gerar \fBSIGINT\fP), esse sinal é enviado para o grupo de processo de primeiro plano. (Consulte \fBtermios\fP(3) para uma descrição dos caracteres que geram sinais.) Apenas o grupo de processos de primeiro plano pode usar \fBread\fP(2) a partir do terminal; se um grupo de processo em segundo plano tenta usar \fBread\fP(2) a partir do terminal, então o grupo recebe um sinal \fBSIGTTIN\fP, que o suspende. As funções \fBtcgetpgrp\fP(3) e \fBtcsetpgrp\fP(3) são usadas para obter/definir o grupo de processos de primeiro plano do terminal de controle. .P As chamadas \fBsetpgid\fP() e \fBgetpgrp\fP() são usadas por programas como \fBbash\fP(1) para criar grupos de processos a fim de implementar o controle de trabalho do shell. .P .\" exit.3 refers to the following text: Se o término de um processo faz com que um grupo de processo se torne órfão, e se qualquer membro do grupo de processo recém\-órfão for interrompido, um sinal \fBSIGHUP\fP seguido por um sinal \fBSIGCONT\fP será enviado para cada processo no grupo de processo recentemente órfão. Um grupo de processos órfão é aquele em que o pai de cada membro do grupo de processos também é membro do grupo de processos ou é membro de um grupo de processos em uma sessão diferente (consulte também \fBcredenciais\fP(7)). .SH "VEJA TAMBÉM" \fBgetuid\fP(2), \fBsetsid\fP(2), \fBtcgetpgrp\fP(3), \fBtcsetpgrp\fP(3), \fBtermios\fP(3), \fBcredentials\fP(7) .PP .SH TRADUÇÃO A tradução para português brasileiro desta página man foi criada por André Luiz Fassone , Marcelo Pereira da Silva e Rafael Fontenelle . . .PP Esta tradução é uma documentação livre; leia a .UR https://www.gnu.org/licenses/gpl-3.0.html Licença Pública Geral GNU Versão 3 .UE ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita. .PP Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para .MT debian-l10n-portuguese@lists.debian.org a lista de discussão de tradutores .ME .