setsid(2) System Calls Manual setsid(2) NUME setsid - creeaza o sesiune i stabilete ID-ul grupului de procese BIBLIOTECA Biblioteca C standard (libc, -lc) REZUMAT #include pid_t setsid(void); DESCRIERE setsid() creeaza o sesiune noua daca procesul apelant nu este un lider de grup de procese. Procesul apelant este liderul noii sesiuni (adica ID-ul sesiunii sale este acelai cu ID-ul procesului sau). De asemenea, procesul apelant devine liderul grupului de procese al unui nou grup de procese in cadrul sesiunii (de exemplu, ID-ul grupului de procese este acelai cu ID-ul sau de proces). Procesul de apelare va fi singurul proces din noul grup de procese i din noua sesiune. Iniial, noua sesiune nu are un terminal de control. Pentru detalii privind modul in care o sesiune dobandete un terminal de control, a se vedea credentials(7). VALOAREA RETURNATA In caz de succes, se returneaza ID-ul de sesiune (nou) al procesului apelant. In caz de eroare, se returneaza (pid_t) -1, iar errno este configurata pentru a indica eroarea. ERORI-IEIRE EPERM ID-ul grupului de procese al oricarui proces este egal cu PID-ul procesului care il apeleaza. Astfel, in special, setsid() eueaza daca procesul apelant este deja un lider de grup de procese. STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001, SVr4. NOTE Un proces-copil creat prin fork(2) motenete ID-ul de sesiune al parintelui sau. ID-ul de sesiune este pastrat in cazul unui apel execve(2). Un lider de grup de procese este un proces al carui ID de grup de procese este egal cu PID-ul sau. Interzicerea apelarii setsid() de catre un lider de grup de procese previne posibilitatea ca un lider de grup de procese sa se plaseze intr-o noua sesiune, in timp ce alte procese din grupul de procese raman in sesiunea iniiala; un astfel de scenariu ar incalca ierarhia stricta pe doua niveluri a sesiunilor i grupurilor de procese. Pentru a fi siguri ca setsid() va reui, apelai fork(2) i punei parintele sa apeleze _exit(2), in timp ce copilul (care, prin definiie, nu poate fi un lider de grup de procese) apeleaza setsid(). In cazul in care o sesiune are un terminal de control, iar fanionul CLOCAL pentru acel terminal nu este definit i se produce o inchidere a terminalului, atunci conducatorului sesiunii i se trimite un semnal SIGHUP. In cazul in care un proces care este lider de sesiune se termina, se trimite un semnal SIGHUP la fiecare proces din grupul de procese din prim-plan al terminalului de control. CONSULTAI I setsid(1), getsid(2), setpgid(2), setpgrp(2), tcgetsid(3), credentials(7), sched(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 setsid(2)