.\" -*- 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 <michael@moria.de>
.\" Modified by Thomas Koenig <ig25@rz.uni-karlsruhe.de>
.\" Modified 1993-07-23 by Rik Faith <faith@cs.unc.edu>
.\" Modified 1993-07-25 by Rik Faith <faith@cs.unc.edu>
.\" Modified 1995-11-01 by Michael Haardt
.\"  <michael@cantor.informatik.rwth-aachen.de>
.\" Modified 1996-04-14 by Andries Brouwer <aeb@cwi.nl>
.\"  [added some polishing contributed by Mike Battersby <mib@deakin.edu.au>]
.\" Modified 1996-07-21 by Andries Brouwer <aeb@cwi.nl>
.\" Modified 1997-01-17 by Andries Brouwer <aeb@cwi.nl>
.\" Modified 2001-12-18 by Andries Brouwer <aeb@cwi.nl>
.\" Modified 2002-07-24 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"	Added note on historical rules enforced when an unprivileged process
.\"	sends a signal.
.\" Modified 2004-06-16 by Michael Kerrisk <mtk.manpages@gmail.com>
.\"     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 <signal.h>\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 <pborys@dione.ids.pl>,
Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>
i
Michał Kułach <michal.kulach@gmail.com>
.
.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 .
