setpgid(2) System Calls Manual setpgid(2) setpgid, getpgid, setpgrp, getpgrp - / C (libc, -lc) #include int setpgid(pid_t pid, pid_t pgid); pid_t getpgid(pid_t pid); pid_t getpgrp(void); /* POSIX.1 version */ [[deprecated]] pid_t getpgrp(pid_t pid); /* BSD version */ int setpgrp(void); /* System V version */ [[deprecated]] int setpgrp(pid_t pid, pid_t pgid); /* BSD version */ glibc (. feature_test_macros(7)): getpgid(): _XOPEN_SOURCE >= 500 || /* glibc 2.12: */ _POSIX_C_SOURCE >= 200809L setpgrp() (POSIX.1): _XOPEN_SOURCE >= 500 || /* glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE setpgrp() (BSD), getpgrp() (BSD): [ glibc 2.19] _BSD_SOURCE && ! (_POSIX_SOURCE || _POSIX_C_SOURCE || _XOPEN_SOURCE || _GNU_SOURCE || _SVID_SOURCE) Linux (PGID). POSIX.1: getpgrp(void) -- PGID ; setpgid() -- PGID . setpgid() PGID pid pgid. pid 0, . pgid 0, PGID , pid, . setpgid() ( ), (. setsid(2) credentials(7)). pgid , . POSIX.1 getpgrp() PGID . getpgid() PGID pid. pid , ( PGID , , , POSIX.1 getpgrp()). System V setpgrp() setpgid(0, 0). BSD setpgrp() pid pgid , setpgid(pid, pgid) glibc 2.19, BSD- setpgrp() ; setpgid(), . BSD getpgrp() pid , getpgid(pid) glibc 2.19, BSD- getpgrp() ; POSIX.1 getpgrp(), ( PGID ), getpgid(), . On success, setpgid() and setpgrp() return zero. On error, -1 is returned, and errno is set to indicate the error. getpgrp() (POSIX.1) PGID . getpgid(), and the BSD-specific getpgrp() return a process group on success. On error, -1 is returned, and errno is set to indicate the error. EACCES , execve(2) (setpgid(), setpgrp()). EINVAL pgid 0 (setpgid(), setpgrp()). EPERM , (setpgid(), setpgrp()). EPERM . (setpgid(), setpgrp()). ESRCH getpgid(): pid. setpgid(): pid . getpgid() setpgid() getpgrp() ( ) POSIX.1-2024. setpgrp() getpgrp() (1 ) . getpgid() setpgid() getpgrp() ( ) POSIX.1-2001. setpgrp() ( ) POSIX.1-2001. Obsoleted in POSIX.1-2008. Removed in POSIX.1-2024. setpgrp() (2 ) getpgrp() (1 ) 4.2BSD. , fork(2), . PGID execve(2). , ( credentials(7)). . ( ) (foreground process group) ; . (, SIGINT), ( termios(3) , ). read(2) ; read(2) , SIGTTIN, . tcgetpgrp(3) tcsetpgrp(3) / . setpgid() getpgrp() , bash(1), . , SIGHUP SIGCONT. , (. credentials(7)). getuid(2), setsid(2), tcgetpgrp(3), tcsetpgrp(3), termios(3), credentials(7) () Alexander Golubev , Azamat Hackimov , Hotellook, Nikita , Spiros Georgaras , Vladislav , Yuri Kozlov ; GNU (GNU General Public License - GPL, 3 ) , - . - , , () () () . Linux man-pages 6.18 8 2026 . setpgid(2)