File: setpgid.2

package info (click to toggle)
manpages-es 1.55-4
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 7,472 kB
  • ctags: 6
  • sloc: sh: 1,349; makefile: 63
file content (199 lines) | stat: -rw-r--r-- 7,041 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
.\" Copyright (c) 1983, 1991 Regents of the University of California.
.\" All rights reserved.
.\"
.\" 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.
.\"
.\"     @(#)getpgrp.2	6.4 (Berkeley) 3/10/91
.\"
.\" Modified 1993-07-24 by Rik Faith <faith@cs.unc.edu>
.\" Modified 1995-04-15 by Michael Chastain <mec@shell.portal.com>:
.\"   Added 'getpgid'.
.\" Modified 1996-07-21 by Andries Brouwer <aeb@cwi.nl>
.\" Modified 1996-11-06 by Eric S. Raymond <esr@thyrsus.com>
.\" Modified 1999-09-02 by Michael Haardt <michael@moria.de>
.\" Modified 2002-01-18 by Michael Kerrisk <mtk16@ext.canterbury.ac.nz>
.\" Modified 2003-01-20 by Andries Brouwer <aeb@cwi.nl>
.\" Translated into Spanish Mon Jan 26 1998 by Gerardo Aburruzaga
.\" García <gerardo.aburruzaga@uca.es>
.\" Translation revised Mon Aug 17 1998 by Juan Piernas <piernas@ditec.um.es>
.\" Translation revised Sun Apr 16 2000 by Juan Piernas <piernas@ditec.um.es>
.\" Revisado por Miguel Pérez Ibars <mpi79470@alu.um.es> el 1-diciembre-2004
.\"
.TH SETPGID 2 "20 enero 2003" "Linux" "Manual del Programador de Linux"
.SH NOMBRE
setpgid, getpgid, setpgrp, getpgrp \- obtener/establecer el grupo de
procesos
.SH SINOPSIS
.B #include <unistd.h>
.sp
.BI "int setpgid(pid_t " pid ", pid_t " pgid );
.br
.BI "pid_t getpgid(pid_t " pid );
.br
.B int setpgrp(void);
.br
.B pid_t getpgrp(void);
.SH DESCRIPCIÓN
.B setpgid
pone el ID del grupo del proceso especificado por 
.I pid
a
.IR pgid .
Si
.I pid
es cero, se emplea el PID del proceso en curso. Si
.I pgid
es cero, se emplea el PID del proceso especificado por
.IR pid .
Si \fBsetpgid\fP se utiliza para mover un proceso de un grupo de procesos a
otro (como hacen algunos shells cuando crean tuberías), ambos grupos de
procesos deben formar parte de la misma sesión. En este caso, \fIpgid\fP
especifica el grupo de procesos existente en el que vamos a entrar, y
el ID de sesión de ese grupo de procesos debe coincidir con el ID de sesión
del proceso que quiere entrar.

.B getpgid
devuelve el ID del grupo de proceso del especificado por
.IR pid .
Si
.I pid
es cero, se emplea el PID del proceso en curso.

La llamada
.B setpgrp()
es equivalente a
.BR setpgid(0,0) .

De manera similar
.B getpgrp()
es equivalente a
.BR getpgid(0) .
Cada grupo de procesos es miembro de una sesión y cada proceso es miembro de
la sesión de la que su grupo de procesos es miembro.

Los grupos de proceso se emplean para la distribución de señales, y
por las terminales para arbitrar peticiones para su entrada: los
procesos que tienen el mismo grupo de proceso que la terminal son en
primer plano y pueden leer, mientras que otros se bloquearán con una
señal si intentan leer.

Estas llamadas se usan pues por programas como
.BR csh (1)
para crear grupos de proceso cuando implementan el control de trabajos.
Las llamadas
.B TIOCGPGRP
y
.B TIOCSPGRP
descritas en
.BR termios (3)
se emplean para obtener/poner el grupo de proceso de la terminal de control.

Si una sesión posee una terminal controladora, CLOCAL no está
configurada y si se cierra la sesión, entonces se enviará una señal SIGHUP al
lider de sesión. Si el lider de sesión existe, se enviará la señal SIGHUP a
cada proceso del grupo de procesos en primer plano de la terminal
controladora.

Si la terminación del proceso hace que un grupo de procesos se quede
huérfano y si cualquier miembro del grupo de procesos que se acaba de quedar
huérfano se detiene, entonces se enviará una señal SIGHUP seguida de
una señal SIGCONT a cada proceso en el grupo de procesos que se acaba de
quedar huérfano.

.SH "VALOR DEVUELTO"
En caso de éxito,
.BR setpgid " y " setpgrp
devuelven cero. En caso de error. devuelven \-1 y ponen un valor
apropiado en \fIerrno\fP.

.B getpgid
devuelve un grupo de proceso si acaba bien; \-1 en caso de error, y 
pone un valor apropiado en \fIerrno\fP.

.B getpgrp
siempre devuelve el grupo de proceso actual.
.SH ERRORES
.TP
.B EINVAL
.I pgid
es menor que 0
(\fBsetpgid\fP, \fBsetpgrp\fP).
.TP
.B EACCES
Se intentó cambiar el identificador de grupo de procesos
de uno de los hijos del proceso invocador y el proceso hijo
ya había realizado una llamada a \fBexecve\fP
(\fBsetpgid\fP, \fBsetpgrp\fP).
.TP
.B EPERM
Se intentó cambiar el grupo de procesos de un proceso
a otro grupo en una sesión diferente, o cambiar el identificador
de grupo de procesos de uno de los hijos del proceso invocador
estando el proceso hijo en una sesión diferente, o cambiar el
identificador de grupo de procesos de un líder de sesión
(\fBsetpgid\fP, \fBsetpgrp\fP).
.TP
.B ESRCH
Para
.BR getpgid :
.I pid
no concuerda con ningún proceso.
Para
.BR setpgid :
.I pid
no se corresponde con el proceso actual ni con uno de sus hijos.
.SH "CONFORME A"
Las funciones
.B setpgid
y
.B getpgrp
siguen el estándar POSIX.1.
La función
.B setpgrp
es de BSD 4.2.
La función
.B getpgid
conforma con SVr4.
.SH OBSERVACIONES
POSIX tomó
.B setpgid
de la función BSD
.BR setpgrp .
SysV también tiene una función con el mismo nombre, pero es idéntica a
.BR setsid (2).
.LP
Para obtener los prototipos bajo glibc, debe definir tanto _XOPEN_SOURCE como
_XOPEN_SOURCE_EXTENDED, o usar "#define _XOPEN_SOURCE \fIn\fP"
para algún entero \fIn\fP mayor o igual a 500.
.SH "VÉASE TAMBIÉN"
.BR getuid (2),
.BR setsid (2),
.BR tcgetpgrp (3),
.BR tcsetpgrp (3),
.BR termios (3)