.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1983, 1991 Regents of the University of California. .\" and Copyright (C) 2007, Michael Kerrisk .\" All rights reserved. .\" .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" %%%LICENSE_END .\" .\" @(#)getpgrp.2 6.4 (Berkeley) 3/10/91 .\" .\" Modified 1993-07-24 by Rik Faith .\" Modified 1995-04-15 by Michael Chastain : .\" Added 'getpgid'. .\" Modified 1996-07-21 by Andries Brouwer .\" Modified 1996-11-06 by Eric S. Raymond .\" Modified 1999-09-02 by Michael Haardt .\" Modified 2002-01-18 by Michael Kerrisk .\" Modified 2003-01-20 by Andries Brouwer .\" 2007-07-25, mtk, fairly substantial rewrites and rearrangements .\" of text. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH SETPGID 2 "15 setembro 2017" Linux "Manual do Programador do Linux" .SH NOME setpgid, getpgid, setpgrp, getpgrp \- define/obtém o grupo do processo .SH SINOPSE \fB#include \fP .br \fB#include \fP .PP \fBint setpgid(pid_t \fP\fIpid\fP\fB, pid_t \fP\fIpgid\fP\fB);\fP .br \fBpid_t getpgid(pid_t \fP\fIpid\fP\fB);\fP .PP \fBpid_t getpgrp(void);\fP /* versão POSIX.1 */ .br \fBpid_t getpgrp(pid_t \fP\fIpid\fP\fB);\fP /* versão BSD */ .PP \fBint setpgrp(void);\fP /* versão System V */ .br \fBint setpgrp(pid_t \fP\fIpid\fP\fB, pid_t \fP\fIpgid\fP\fB);\fP /* versão BSD */ .PP .RS -4 Requisitos de macro de teste de recursos para o glibc (consulte \fBfeature_test_macros\fP(7)): .RE .PP .ad l \fBgetpgid\fP(): .RS 4 .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE\ >=\ 500 || /* Desde o glibc 2.12: */ _POSIX_C_SOURCE\ >=\ 200809L .RE .PP \fBsetpgrp\fP() (POSIX.1): .nf .\" || _XOPEN_SOURCE\ &&\ _XOPEN_SOURCE_EXTENDED _XOPEN_SOURCE\ >=\ 500 || /* Desde o glibc 2.19: */ _DEFAULT_SOURCE || /* Glibc versões <= 2.19: */ _SVID_SOURCE .fi .PP \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 .ad .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. .PP \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. .PP A versão POSIX.1 de \fBgetpgrp\fP(), que não leva argumentos, retorna o PGID do processo de chamada. .PP \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.) .PP O \fBsetpgrp\fP() do estilo System\ V, que leva nenhum argumento, é equivalente a \fIsetpgid(0,\ 0)\fP. .PP A chamada \fBsetpgrp\fP() específica do BSD, que leva os argumentos \fIpid\fP e \fIpgid\fP, é uma função de wrapper que chama .PP setpgid(pid, pgid) .PP .\" 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. .PP A chamada \fBgetpgrp\fP() específica do BSD, que leva um único argumento \fIpid\fP, é uma função de wrapper que chama .PP getpgid(pid) .PP 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() and \fBsetpgrp\fP() retornam zero. Caso contrário, \-1 é devolvido e \fIerrno\fP é selecionado adequadamente. .PP O \fBgetpgrp\fP() POSIX.1 sempre retorna o PGID do chamador. .PP \fBgetpgid\fP(), e o \fBgetpgrp\fP() específico do BSD, retorna o grupo de processo no caso de sucesso. Caso contrário, \-1 é retornado e \fIerrno\fP é definido adequadamente. .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 \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 "DE ACORDO COM" \fBsetpgid\fP() e a versão de \fBgetpgrp\fP() com nenhum argumento em conformidade com POSIX.1\-2001. .PP POSIX.1\-2001 também especifica \fBgetpgid\fP() e a versão de \fBsetpgrp\fP() que não aceita argumentos. (POSIX.1\-2008 marca esta especificação de \fBsetpgrp\fP() como obsoleta.) .PP A versão de \fBgetpgrp\fP() com um argumento e a versão de \fBsetpgrp\fP() que leva dois argumentos derivam de 4.2BSD, e não são especificados por POSIX.1. .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). .PP 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).) .PP 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. .PP 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. .PP .\" 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) .SH COLOFÃO Esta página faz parte da versão 5.10 do projeto Linux \fIman\-pages\fP. Uma descrição do projeto, informações sobre relatórios de bugs e a versão mais recente desta página podem ser encontradas em \%https://www.kernel.org/doc/man\-pages/. .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 .