Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

        kill- trimite un semnal către un proces

BIBLIOTECA

       Biblioteca C standard (libc, -lc)

SINOPSIS

       #include <signal.h>

       int kill(pid_t pid, int sig);

   Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

       kill():
           _POSIX_C_SOURCE

DESCRIERE

       Apelul  de  sistem kill() poate fi utilizat pentru a trimite orice semnal către orice grup de procese sau
       proces.

       Dacă pid este pozitiv, atunci semnalul sig este trimis către procesul cu ID-ul specificat de pid.

       Dacă pid este egal cu 0, atunci sig este trimis la fiecare proces din grupul  de  procese  al  procesului
       apelant.

       Dacă  pid  este  egal  cu  -1,  atunci sig este trimis la fiecare proces pentru care procesul apelant are
       permisiunea de a trimite semnale, cu excepția procesului 1 (init), dar a se vedea mai jos.

       Dacă pid este mai mic decât -1, atunci sig este trimis fiecărui proces din grupul de procese al cărui  ID
       este -pid.

       Dacă  sig  este  0,  atunci  nu  se  trimite niciun semnal, dar se efectuează în continuare verificări de
       existență și de permisiune; acest lucru poate fi utilizat pentru a verifica existența unui ID  de  proces
       sau a unui ID de grup de procese pe care apelantul este autorizat să le semnalizeze.

       Pentru ca un proces să aibă permisiunea de a trimite un semnal, acesta trebuie fie să fie privilegiat (în
       Linux:  să aibă capacitatea CAP_KILL în spațiul de nume al utilizatorului procesului țintă), fie ID-ul de
       utilizator real sau efectiv al procesului de trimitere trebuie să fie egal cu ID-ul  de  utilizator  real
       sau  salvat  al  procesului  țintă.  În cazul lui SIGCONT, este suficient ca procesele de trimitere și de
       primire să aparțină aceleiași sesiuni; (din punct de vedere istoric, regulile erau diferite; a  se  vedea
       NOTE).

VALOAREA RETURNATĂ

       În caz de succes (cel puțin un semnal a fost trimis), se returnează zero. În caz de eroare, se returnează
       -1, iar errno este configurată pentru a indica eroarea.

ERORI-IEȘIRE

       EINVAL A fost specificat un semnal nevalid.

       EPERM  Procesul apelant nu are permisiunea de a trimite semnalul către niciunul dintre procesele țintă.

       ESRCH  Procesul  sau  grupul  de  procese  țintă nu există. Rețineți că un proces existent ar putea fi un
              proces zombi, un proces care și-a încheiat execuția, dar care nu a fost încă wait(2) (așteptat).

STANDARDE

       POSIX.1-2008.

ISTORIC

       POSIX.1-2001, SVr4, 4.3BSD.

   Note Linux
       În diferite versiuni de nucleu, Linux a impus reguli diferite pentru permisiunile necesare pentru  ca  un
       proces neprivilegiat să trimită un semnal unui alt proces. În Linux 1.0 până la 1.2.2, un semnal putea fi
       trimis  dacă  ID-ul  efectiv de utilizator al expeditorului se potrivea cu ID-ul efectiv de utilizator al
       țintei sau dacă ID-ul real de utilizator al expeditorului se potrivea cu  ID-ul  real  de  utilizator  al
       țintei.  De la Linux 1.2.3 până la 1.3.77, se putea trimite un semnal dacă ID-ul efectiv de utilizator al
       expeditorului corespundea fie cu ID-ul real, fie cu ID-ul  efectiv  de  utilizator  al  țintei.  Regulile
       actuale, care sunt conforme cu POSIX.1, au fost adoptate în Linux 1.3.78.

NOTE

       Singurele  semnale  care  pot fi trimise către procesul ID 1, procesul init, sunt cele pentru care init a
       instalat în mod explicit gestionari de semnal. Acest lucru se face pentru a se  asigura  că  sistemul  nu
       este oprit din greșeală.

       POSIX.1  cere  ca kill(-1,sig) să trimită sig la toate procesele cărora procesul apelant le poate trimite
       semnale, cu excepția, eventual, a unor procese de sistem definite de  implementare.  Linux  permite  unui
       proces să se semnalizeze singur, dar pe Linux apelul kill(-1,sig) nu semnalizează procesul apelant.

       POSIX.1 prevede că, în cazul în care un proces își trimite un semnal către el însuși, iar firul expeditor
       nu  are semnalul blocat și nici un alt fir nu îl are deblocat sau nu îl așteaptă în sigwait(3), cel puțin
       un semnal deblocat trebuie să fie livrat firului expeditor înainte ca kill() să se întoarcă.

ERORI

       În Linux 2.6 până la Linux 2.6.7 inclusiv, a existat o eroare care făcea  ca  atunci  când  se  trimiteau
       semnale către un grup de procese, kill() să eșueze cu eroarea EPERM dacă apelantul nu avea permisiunea de
       a  trimite  semnalul către oricare (mai degrabă decât toți) dintre membrii grupului de procese. În pofida
       acestei erori de returnare, semnalul a fost totuși transmis tuturor proceselor pentru care apelantul avea
       permisiunea de a transmite semnalul.

CONSULTAȚI ȘI

       kill(1),  _exit(2),  pidfd_send_signal(2),  signal(2),   tkill(2),   exit(3),   killpg(3),   sigqueue(3),
       capabilities(7), credentials(7), signal(7)

TRADUCERE

       Traducerea    în   limba   română   a   acestui   manual   a   fost   făcută   de   Remus-Gabriel   Chelu
       <remusgabriel.chelu@disroot.org>

       Această traducere este  documentație  gratuită;  citiți  Licența publică generală GNU Versiunea 3  sau  o
       versiune   ulterioară   cu  privire  la  condiții  privind  drepturile  de  autor.   NU  se  asumă  NICIO
       RESPONSABILITATE.

       Dacă găsiți erori în traducerea acestui manual, vă rugăm să  trimiteți  un  e-mail  la  translation-team-
       ro@lists.sourceforge.net.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                            kill(2)