join or create a process group
#include <unistd.h> int setpgid( pid_t pid, pid_t pgid );
The setpgid() function is used either to join an existing process group or to create a new process group within the session of the calling process. The process group ID of a session leader will not change. Upon successful completion, the process group ID of the process with a process ID matching pid is set to pgid. As a special case, either pid or pgid may be specified as zero, meaning that the process ID of the calling process is to be used.
/* * The process joins process group 0 */ #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <stdlib.h> void main() { if( setpgid( getpid(), 0 ) == -1 ) { perror( "segpgid" ); } printf( "%d belongs to process group %d\n", getpid(), getpgrp() ); }
POSIX 1003.1
Safety: | |
---|---|
Interrupt handler | No |
Signal handler | Yes, but modifies errno |
Thread | Yes |
errno, setgid(), setuid(), setsid()