| SETPGID(2) | System Calls Manual | SETPGID(2) |
setpgid, setpgrp
— set process group
Standard C Library (libc, -lc)
#include
<unistd.h>
int
setpgid(pid_t
pid, pid_t
pgrp);
int
setpgrp(pid_t
pid, pid_t
pgrp);
setpgid()
sets the process group of the specified process pid to
the specified pgrp. If pid is
zero, then the call applies to the current process. If
pgrp is zero, then the process id of the process
specified by pid is used instead.
If the invoker is not the super-user, then the affected process must have the same effective user-id as the invoker or be a descendant of the invoking process.
In general to set the process group of a newly
forked subprocess, both the child and parent processes should call
setpgid()
to ensure that the process group change takes effect in a timely fashion.
One call will succeed and the other will fail, depending on process
scheduling.
setpgid() returns 0 when the operation was
successful. If the request failed, -1 is returned and the global variable
errno indicates the reason.
setpgrp() is identical to
setpgid(), and is retained for calling convention
compatibility with historical versions of BSD.
setpgid() will fail and the process group
will not be altered if:
EACCES]EINVAL]EPERM]ESRCH]The setpgid() function conforms to
IEEE Std 1003.1-1990 (“POSIX.1”).
| March 15, 2022 | NetBSD 11.0 |