.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1992 Drew Eckhardt (drew@cs.colorado.edu), March 28, 1992 .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Modified by Michael Haardt .\" Modified by Thomas Koenig .\" Modified 1993-07-23 by Rik Faith .\" Modified 1993-07-25 by Rik Faith .\" Modified 1995-11-01 by Michael Haardt .\" .\" Modified 1996-04-14 by Andries Brouwer .\" [added some polishing contributed by Mike Battersby ] .\" Modified 1996-07-21 by Andries Brouwer .\" Modified 1997-01-17 by Andries Brouwer .\" Modified 2001-12-18 by Andries Brouwer .\" Modified 2002-07-24 by Michael Kerrisk .\" Added note on historical rules enforced when an unprivileged process .\" sends a signal. .\" Modified 2004-06-16 by Michael Kerrisk .\" Added note on CAP_KILL .\" Modified 2004-06-24 by aeb .\" Modified, 2004-11-30, after idea from emmanuel.colbus@ensimag.imag.fr .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH kill 2 "2 maja 2024 r." "Linux man\-pages 6.9.1" .SH NAZWA kill \- wysyła sygnał do procesu .SH BIBLIOTEKA Standardowa biblioteka C (\fIlibc\fP, \fI\-lc\fP) .SH SKŁADNIA .nf \fB#include \fP .P \fBint kill(pid_t \fP\fIpid\fP\fB, int \fP\fIsig\fP\fB);\fP .fi .P .RS -4 Wymagane ustawienia makr biblioteki glibc (patrz \fBfeature_test_macros\fP(7)): .RE .P \fBkill\fP(): .nf _POSIX_C_SOURCE .fi .SH OPIS Funkcja systemowa \fBkill\fP() może służyć do przesłania dowolnego sygnału do dowolnego procesu lub do dowolnej grupy procesów. .P Jeśli \fIpid\fP ma wartość dodatnią, to sygnał \fIsig\fP jest przesyłany do procesu o identyfikatorze \fIpid\fP. .P Jeśli \fIpid\fP jest równy 0, to \fIsig\fP jest przesyłany do wszystkich procesów należących do tej samej grupy, co proces wywołujący. .P Jeśli \fIpid\fP jest równy \-1, to sygnał jest przesyłany do wszystkich procesów, do których proces wywołujący ma prawo wysyłać sygnały, oprócz procesu nr 1 (\fIinit\fP), szczegóły poniżej. .P Jeśli \fIpid\fP jest mniejszy niż \-1, to sygnał jest przesyłany do wszystkich procesów należących do grupy procesów o identyfikatorze równym \fI\-pid\fP. .P Jeśli \fIsig\fP jest równy 0, to nie jest wysyłany żaden sygnał, ale wciąż przeprowadzane jest sprawdzenie istnienia i uprawnień; można to wykorzystać w celu sprawdzenia istnienia identyfikatora procesu lub identyfikatora grupy procesu, w przypadku których wywołujący ma prawo wysyłać sygnały. .P Aby proces miał prawo wysłać sygnał, musi być albo uprzywilejowany (w Linuksie: posiadać przywilej \fBCAP_KILL\fP (ang. capability) w przestrzeni nazw użytkownika procesu docelowego), albo rzeczywisty lub efektywny identyfikator użytkownika procesu wysyłającego musi być równy rzeczywistemu ID lub zachowanemu set UID procesu docelowego. W przypadku sygnału \fBSIGCONT\fP wystarcza, aby procesy wysyłający i otrzymujący należały do tej samej sesji (historycznie zasady te były inne; zob. UWAGI). .SH "WARTOŚĆ ZWRACANA" Po pomyślnym zakończeniu (gdy wysłano co najmniej jeden sygnał) zwracane jest zero. w przypadku błędu zwracane jest \-1 i ustawiane \fIerrno\fP wskazując błąd. .SH BŁĘDY .TP \fBEINVAL\fP Podano nieprawidłowy sygnał. .TP \fBEPERM\fP Proces wywołujący nie ma uprawnień do wysyłania sygnału do żadnego z procesów docelowych. .TP \fBESRCH\fP Docelowy proces lub grupa procesów nie istnieje. Należy zauważyć, że istniejący proces może być zombie, czyli procesem, który już zakończył wykonanie, lecz jeszcze na niego nie zaczekano (\fBwait\fP(2)). .SH STANDARDY POSIX.1\-2008. .SH HISTORIA POSIX.1\-2001, SVr4, 4.3BSD. .SS "Uwagi linuksowe" .\" In the 0.* kernels things chopped and changed quite .\" a bit - MTK, 24 Jul 02 W różnych wersjach jądra, Linux wymusza różne reguły dotyczące uprawnień wymaganych od procesu nieuprzywilejowanego, aby mógł on wysłać sygnał do innego procesu. W Linuksie 1.0 do 1.2.2 sygnał mógł być wysłany, gdy efektywny identyfikator użytkownika wysyłającego jest taki sam, jak odbierającego, lub gdy rzeczywisty identyfikator użytkownika wysyłającego jest taki sam, jak odbierającego. Od Linuksa 1.2.3 aż do 1.3.77, sygnał mógł być wysłany, gdy efektywny identyfikator użytkownika wysyłającego jest taki sam, jak efektywny lub rzeczywisty identyfikator użytkownika odbierającego. Obecne zasady, zgodnie z POSIX.1, zostały przyjęte w Linuksie 1.3.78. .SH UWAGI Jedyne sygnały, jakie można wysłać do procesu o identyfikatorze 1 \[em] procesu \fIinit\fP \[em] to te, dla których \fIinit\fP jawnie zainstalował procedurę obsługi sygnału. Zabezpiecza to przed przypadkowym załamaniem systemu. .P POSIX.1 wymaga, aby \fIkill(\-1,sig)\fP wysyłało \fIsig\fP do wszystkich procesów, do których aktualny proces może go wysłać, za ewentualnym wyjątkiem pewnych, zdefiniowanych w implementacji, procesów systemowych. Linux pozwala procesowi wysłać sygnał do samego siebie, ale wywołanie \fIkill(\-1,sig)\fP pod Linuksem nie powoduje wysłania sygnału do procesu wywołującego. .P W przypadku gdy proces wysyła sygnał do siebie samego, a wysyłający wątek nie blokuje sygnału i żaden inny wątek go nie odblokował, ani nie czeka na niego w \fBsigwait\fP(3), POSIX.1 wymaga, aby co najmniej jeden odblokowany sygnał został dostarczony do wysyłającego wątku przed powrotem \fBkill\fP(). .SH USTERKI W Linuksie 2.6 do Linuksa 2.6.7 włącznie istniał błąd, który w przypadku wysyłania sygnałów do grupy procesu powodował, że \fBkill\fP() zawodziło z błędem \fBEPERM\fP, gdy wywołujący nie miał uprawnień do wysyłania sygnału do \fIktóregokolwiek\fP (zamiast, poprawnie, \fIwszystkich\fP) członków grupy procesu. Pomimo zwracanego błędu, sygnał docierał jednak do wszystkich procesów, do których wywołujący miał prawo wysyłać sygnały. .SH "ZOBACZ TAKŻE" \fBkill\fP(1), \fB_exit\fP(2), \fBpidfd_send_signal\fP(2), \fBsignal\fP(2), \fBtkill\fP(2), \fBexit\fP(3), \fBkillpg\fP(3), \fBsigqueue\fP(3), \fBcapabilities\fP(7), \fBcredentials\fP(7), \fBsignal\fP(7) .PP .SH TŁUMACZENIE Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Przemek Borys , Andrzej Krzysztofowicz i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .