SETPGID(2) | System Calls Manual | SETPGID(2) |
setpgid
, setpgrp
—
#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
]setpgid
() function conforms to IEEE
Std 1003.1-1990 (“POSIX.1”).
March 15, 2022 | NetBSD 10.0 |