'\" t .\" Title: kill .\" Author: [see the "AUTHOR(S)" section] .\" Generator: Asciidoctor 2.0.23 .\" Date: 2025-03-29 .\" Manual: Polecenia użytkownika .\" Source: util-linux 2.41 .\" Language: English .\" .TH "KILL" "1" "2025-03-29" "util\-linux 2.41" "Polecenia użytkownika" .ie \n(.g .ds Aq \(aq .el .ds Aq ' .ss \n[.ss] 0 .nh .ad l .de URL \fI\\$2\fP <\\$1>\\$3 .. .als MTO URL .if \n[.g] \{\ . mso www.tmac . am URL . ad l . . . am MTO . ad l . . . LINKSTYLE blue R < > .\} .SH "NAZWA" kill \- kończy proces .SH "SKŁADNIA" .sp \fBkill\fP [\fB\-\fP\fIsygnał\fP|\fB\-s\fP \fIsygnał\fP|\fB\-p\fP] [\fB\-q\fP \fIwartość\fP] [\fB\-a\fP] [\fB\-\-timeout\fP \fImilisekundy\fP \fIsygnał\fP] [\fB\-\-\fP] \fIpid\fP|\fInazwa\fP... .sp \fBkill\fP \fB\-l\fP [\fIliczba\fP|\f(CR0x\fP\fImaska\-sygnałów\fP] | \fB\-L\fP .sp \fBkill\fP \fB\-d\fP \fIpid\fP .SH "OPIS" .sp Polecenie \fBkill\fP wysyła podany \fIsygnał\fP do określonych procesów lub grupy procesów. .sp Jeśli nie określi się sygnału, wysyłany jest sygnał \fBTERM\fP. Domyślną akcją tego sygnału jest przerwanie procesu. Sygnał ten powinien być preferowany wobec sygnału \fBKILL\fP (o numerze 9), ponieważ proces może zainstalować procedurę obsługi sygnału TERM, aby powziąć kroki w celu posprzątania, przed zakończeniem w uporządkowany sposób. Jeśli proces nie zakończy się po wysłaniu sygnału \fBTERM\fP, wtedy można użyć sygnału \fBKILL\fP; proszę mieć na uwadze, że ten ostatni sygnał nie może być przechwycony, zatem nie daje możliwości dokonania jakiegokolwiek sprzątania przed zakończeniem procesu. .sp Większość współczesnych powłok ma wbudowane polecenie \fBkill\fP, którego stosowanie jest zbliżone do opisywanego tu polecenia. Opcje \fB\-\-all\fP, \fB\-\-pid\fP i \fB\-\-queue\fP oraz możliwość określenia procesów nazwą polecenia, są lokalnymi rozszerzeniami. .sp Jeśli \fIsygnał\fP wynosi 0, to nie jest wysyłany żaden sygnał, lecz sprawdzanie pod kątem wystąpienia błędów jest wciąż przeprowadzane. .SH "ARGUMENTY" .sp Lista procesów, które mają otrzymać sygnał, może zawierać przemieszane nazwy i identyfikatory procesów. .sp \fIpid\fP .RS 4 Każdy identyfikator procesu \fIpid\fP można podać w jeden z następujących sposobów: .sp \fIn\fP .RS 4 gdzie \fIn\fP jest większe od 0. Sygnał otrzyma proces z PID równym \fIn\fP. .RE .sp \fB0\fP .RS 4 Sygnał otrzymają wszystkie procesy w bieżącej grupie procesów. .RE .sp \fB\-1\fP .RS 4 Sygnał otrzymają wszystkie procesy z PID większym niż 1. .RE .sp \fB\-\fP\fIn\fP .RS 4 gdzie \fIn\fP jest większe niż 1. Sygnał otrzymają wszystkie procesy w grupie procesów \fIn\fP. Gdy podaje się argument w postaci "\-n" i ma on wskazywać grupę procesów, należy albo podać sygnał jako pierwszy, albo niniejszy argument musi być poprzedzony opcją "\-\-", w innym przypadku zostanie bowiem potraktowany jako numer sygnału do wysłania. .RE .RE .sp \fInazwa\fP .RS 4 Sygnał otrzymają wszystkie procesy wywołane za pomocą tej \fInazwy\fP. .RE .SH "OPCJE" .sp \fB\-s\fP, \fB\-\-signal\fP \fIsygnał\fP .RS 4 Sygnał do wysłania. Można go podać jako nazwę lub numer. .RE .sp \fB\-l\fP, \fB\-\-list\fP [\fIliczba\fP|\f(CR0x\fP\fImaska\-sygnałów\fP] .RS 4 Wypisuje listę nazw sygnałów, przekształca podany numer sygnału na jego nazwę albo przekształca podaną maskę sygnałów na nazwy. Sygnały można znaleźć w pliku \fI/usr/include/linux/signal.h\fP. .sp .if n .RS 4 .nf .fam C $ ps s $$ UID\& PID\& PENDING\& BLOCKED\& IGNORED\& CAUGHT STAT TTY\& TIME COMMAND 1000 1608069 0000000000000000 0000000000000002 0000000000384000 0000000008013003 Ss\& pts/44\& 0:02 zsh $ kill \-l 0x0000000000384000 TERM TSTP TTIN TTOU .fam .fi .if n .RE .RE .sp \fB\-L\fP, \fB\-\-table\fP .RS 4 Podobnie do \fB\-l\fP, lecz wypisze nazwy sygnałów wraz z powiązanymi numerami. .RE .sp \fB\-a\fP, \fB\-\-all\fP .RS 4 Nie ogranicza przekształceń typu: nazwa polecenia na PID, tylko do procesów, z tym samym identyfikatorem użytkownika jak bieżący proces. .RE .sp \fB\-p\fP, \fB\-\-pid\fP .RS 4 Wypisuje tylko identyfikatory procesów (PID) podanych procesów, nie wysyła żadnych sygnałów. .RE .sp \fB\-r\fP, \fB\-\-require\-handler\fP .RS 4 Nie wysyła sygnału, jeśli nie jest on przechwytywany w przestrzeni użytkownika procesu otrzymującego sygnał. .RE .sp \fB\-\-verbose\fP .RS 4 Wypisuje PID(y), które otrzymałyby sygnał od \fBkill\fP, wraz z sygnałem. .RE .sp \fB\-q\fP, \fB\-\-queue\fP \fIwartość\fP .RS 4 Wysyła sygnał za pomocą \fBsigqueue\fP(3), zamiast \fBkill\fP(2). Argument \fIwartość\fP jest liczbą całkowitą wysyłaną razem z sygnałem. Jeśli otrzymujący proces zainstalował procedurę obsługę tego sygnału za pomocą znacznika \fBSA_SIGINFO\fP \fBsigaction\fP(2), to może otrzymać te dane za pomocą pola \fIsi_sigval\fP struktury \fIsiginfo_t\fP. .RE .sp \fB\-\-timeout\fP \fImilisekundy sygnał\fP .RS 4 Wysyła sygnał zdefiniowany w zwykły sposób do procesu, po czym wysyła dodatkowy sygnał, po podanym czasie. Opcja \fB\-\-timeout\fP powoduje, że \fBkill\fP odczeka zdefiniowany w \fImilisekundach\fP czas, przed wysłaniem kolejnego, podanego \fIsygnału\fP do procesu. Funkcję tę zaimplementowano za pomocą funkcjonalności PID\-u deskryptora pliku jądra Linux aby zapewnić, że kolejny sygnał zostanie wysłany do tego samego procesu oraz że nie zostanie wysłany do procesu, który już nie istnieje. .sp Proszę zauważyć, że system operacyjny może użyć ponownie danego PID\-u, zatem zaimplementowanie równoważnej funkcji w powłoce, za pomocą \fBkill\fP i \fBsleep\fP mogłoby powodować wyścig, gdzie kolejny sygnał zostałby wysłany do innego procesu, który otrzymał odzyskany numer identyfikatora procesu. .sp Opcję \fB\-\-timeout\fP można podać wielokrotnie: sygnały są wysyłane kolejno po minięciu podanych czasów przeterminowania. Opcję \fB\-\-timeout\fP można łączyć z opcją \fB\-\-queue\fP. .sp W poniższym przykładzie, polecenie wyśle kolejno sygnały \fBQUIT\fP, \fBTERM\fP i \fBKILL\fP, odczekując po 1000 milisekund pomiędzy nimi: .sp .if n .RS 4 .nf .fam C kill \-\-verbose \-\-timeout 1000 TERM \-\-timeout 1000 KILL \(rs \-\-signal QUIT 12345 .fam .fi .if n .RE .RE .sp \fB\-d\fP, \fB\-\-show\-process\-state\fP \fIpid\fP .RS 4 Odkodowuje pola związane z sygnałem w /proc/\fIpid\fP/status. .sp .if n .RS 4 .nf .fam C $ kill \-d $$ Zablokowany: INT Zignorowany: TERM TSTP TTIN TTOU Złapany: HUP INT PIPE ALRM CHLD WINCH .fam .fi .if n .RE .RE .SH "STATUS ZAKOŃCZENIA" .sp \fBkill\fP ma następujące wartości statusu zakończenia: .sp \fB0\fP .RS 4 sukces .RE .sp \fB1\fP .RS 4 niepowodzenie .RE .sp \fB64\fP .RS 4 częściowy sukces (gdy poda się więcej niż jeden proces) .RE .SH "UWAGI" .sp Choć można podać TID (identyfikator wątku \- thread ID; zob. \fBgettid\fP(2)) jednego z wątków procesu wielowątkowego jako argument \fBkill\fP, sygnał jest i tak skierowany wobec procesu (tj. całej grupy wątków). Innymi słowy, nie da się wysłać sygnału jedynie do ściśle określonego wątku procesu wielowątkowego. Sygnał zostanie dostarczony do wybranego w sposób dowolny wątku procesu docelowego, który nie blokuje sygnału. Więcej szczegółów opisano w podręczniku \fBsignal\fP(7) oraz w opisie \fBCLONE_THREAD\fP w podręczniku \fBclone\fP(2). .sp Poszczególne powłoki udostępniają wbudowane polecenie \fBkill\fP, które ma pierwszeństwo wobec pliku wykonywalnego \fBkill\fP(1) opisywanego w niniejszym podręczniku. Najłatwiejszym sposobem zapewnienia, że wykona się polecenie tu opisane, jest użycie pełnej ścieżki przy wywołaniu polecenia np. \fB/bin/kill \-\-version\fP .SH "AUTORZY" .sp .MTO "svalente\(atmit.edu" "Salvatore Valente" "," .MTO "kzak\(atredhat.com" "Karel Zak" "" .sp Pierwotną wersję zapożyczono z BSD 4.4. .SH "ZOBACZ TAKŻE" .sp \fBbash\fP(1), \fBtcsh\fP(1), \fBsigaction\fP(2), \fBkill\fP(2), \fBsigqueue\fP(3), \fBsignal\fP(7) \fBproc(5)\fP \fBproc_pid_status(5)\fP .SH "ZGŁASZANIE BŁĘDÓW" .sp Problemy należy zgłaszać w \c .URL "https://github.com/util\-linux/util\-linux/issues" "systemie śledzenia błędów" "." .SH "DOSTĘPNOŚĆ" .sp Polecenie \fBkill\fP jest częścią pakietu util\-linux, który można pobrać ze strony \c .URL "https://www.kernel.org/pub/linux/utils/util\-linux/" "Archiwum jądra Linux" "."