Kill (polecenie): Różnice pomiędzy wersjami

Dodane 18 bajtów ,  12 lat temu
m
robot poprawia: ar:كيل (يونكس); zmiany kosmetyczne
[wersja przejrzana][wersja przejrzana]
(→‎Linki zewnętrzne: poprawki języka w szablonie + ew. elementy WP:SK, using AWB)
m (robot poprawia: ar:كيل (يونكس); zmiany kosmetyczne)
'''kill''' ([[język angielski|ang.]] ''zabić'') – [[program komputerowy]] w systemach [[Unix]] i [[Linux]] pozwalający na przesyłanie [[sygnał|sygnałów]] do [[proces (informatyka)|procesów]] pracujących w [[system operacyjny|systemie operacyjnym]]. Domyślnie program kill wysyła do procesu sygnał nakazujący mu zakończenie pracy. Wbrew nazwie sugerującej natychmiastowe przerwanie pracy, polecenie powoduje poprawne zamknięcie procesu i zachowanie wszelkich wewnętrznych danych. W systemach takich jak Unix każdy uruchamiany program działa jako proces. Jeżeli, któryś z nich ulegnie awarii, polecenie kill pozwala na zakończenie jego pracy. Niektóre programy w Uniksie nie mają [[interfejs użytkownika|interfejsu użytkownika]] , bo pracują w tle ([[daemon|demony]]) i jedynym sposobem na zakończenie ich działania jest użycie programu kill.
 
== Działanie kill ==
Sygnał jest wysyłany poprzez wywołanie odpowiedniej funkcji w [[jądro systemu operacyjnego|jądrze systemu operacyjnego]]. Proces może obsłużyć taki sygnał lub zignorować. Program kill jako argument otrzymuje jednoznaczny [[PID (informatyka)|identyfikator procesu (''PID'')]].
 
Program kill może przesyłać procesom różne sygnały, najczęściej używane to:
* ''SIGTERM'' – poprawne zamknięcie procesu,
* ''SIGKILL'' – unicestwienie procesu co może powodować utratę wszystkich zawartych w nim danych (nie ma możliwości przechwycenia tego sygnału przez proces),
* ''SIGSTOP'' – zatrzymanie procesu bez utraty danych,
* ''SIGCONT'' – ponowne uruchomienie zatrzymanego procesu.
 
Domyślnie wysyłany jest sygnał SIGTERM, który powoduje bezpieczne zamknięcie procesu. Poprawnie napisany program potrafi przechwycić taki sygnał i odpowiednio go obsłużyć. Sygnały ''SIGKILL'', ''SIGSTOP'', ''SIGCONT'' są informacją dla jądra systemu, które musi podjąć odpowiednie kroki (program nie ma możliwości obsłużenia tych sygnałów). ''SIGKILL'' pozwala na usunięcie z systemu procesu, który uległ awarii i przestał odpowiadać, ale oznacza utratę wszystkich zawartych w nim informacji. Unicestwianiem procesu zajmuje się jądro systemu, które zwalnia wszystkie zajęte przez program zasoby.
Jeżeli zakończony proces posiada [[Proces potomny|procesy potomne]] (normalne lub w stanie [[Proces zombie|zombie]]) to zostają one zaadoptowane przez [[init]] (PID 1).
 
== Przykłady ==
Procesowi o numerze 1234 można przesłać sygnał SIGTERM na trzy sposoby:
$ '''kill 1234'''
$ '''kill -9 1234'''
 
== killall ==
{{main|killall}}
Program ''killall'' jest rozszerzeniem kill. W niektórych wersjach Unixa takich jak Solaris polecenie killall jest wywoływane w momencie zamykania systemu. Przesyła sygnał SIGTERM do wszystkich procesów.
$ '''killall /bin/jakis_proces'''
 
== pkill ==
W niektórych systemach takich jak Solaris w wersji większej niż 7 czy Linux dostępny jest program '''pkill''', które działa analogiczne do ''killall''.
$ '''pkill /bin/jakis_proces'''
 
== xkill ==
Jeżeli w systemie uruchomiono serwer [[X-Windows]] program '''xkill''' pozwala na zamknięcie go poprzez kliknięcie na jego okno.
 
== Windows ==
W systemach z rodziny [[Microsoft Windows|Windows]] do przerywania pracy procesów można użyć polecenia '''taskkill'''. Polecenie kill jest dostępne w instalowanym na Windows [[Cygwin|Cygwinie]]ie.
 
{{Przypisy}}
 
== Linki zewnętrzne ==
* [http://www.linuxmanpages.com/man1/kill.1.php Podręcznik dla kill] {{lang|en}}
* [http://www.linuxmanpages.com/man1/killall.1.php Podręcznik dla killall] {{lang|en}}
* [http://www.linuxmanpages.com/man1/pkill.1.php Podręcznik dla pkill] {{lang|en}}
* [http://www.linuxmanpages.com/man1/xkill.1.php Podręcznik dla xkill] {{lang|en}}
* [http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/taskkill.mspx?mfr=true Podręcznik dla taskkill] {{lang|en}}
{{Polecenia Unix}}
 
[[ar:Killكيل (يونكس)]]
[[ca:Kill (Unix)]]
[[cs:Kill]]
324 458

edycji