
Tento článek popisuje základy linuxového pkill
příkaz.
pkill
je nástroj příkazového řádku, který odesílá signály procesům běžícího programu na základě daných kritérií. Procesy mohou být specifikovány jejich úplnými nebo částečnými názvy, uživatelem spouštějícím proces nebo jinými atributy.
pkill
příkaz je součástí procps
(nebo procps-ng
), který je předinstalovaný na téměř všech distribucích Linuxu. pkill
je basicity obal kolem pgrep
program, který pouze vytiskne seznam odpovídajících procesů.
Jak používat pkill
Příkaz #
Syntaxe pro pkill
příkaz je následující:
pkill [OPTIONS] <PATTERN>
Odpovídající <PATTERN>
je specifikováno pomocí rozšířených regulárních výrazů.
Při vyvolání bez možnosti pkill
odešle 15
(TERM
) signál do PID všech běžících programů, které se shodují s daným názvem. Chcete-li například elegantně zastavit všechny procesy firefox, spustili byste:
pkill -15 firefox
Příkaz vrátí 0
když alespoň jeden běžící proces odpovídá požadovanému názvu. Jinak je výstupní kód 1
. To může být užitečné při psaní skriptů shellu.
Chcete-li do odpovídajících procesů poslat jiný signál, vyvolejte pkill
pomocí příkazu --signal
následuje buď číselný, nebo symbolický název signálu. Dalším způsobem, jak poslat signál, je spustit pkill
následovaný názvem signálu nebo číslem s pomlčkou (-
).
Použijte kill -l
příkaz k zobrazení seznamu všech dostupných signálů.
Nejčastěji používané signály jsou:
1
(HUP
):znovu načíst proces.9
(KILL
):zabít proces.15
(TERM
):elegantně zastavit proces.
Signály lze specifikovat třemi různými způsoby:
- pomocí čísla (např. -1)
- s předponou „SIG“ (např. -SIGHUP)
- bez předpony „SIG“ (např. -HUP).
Chcete-li například znovu načíst procesy Nginx, které byste spustili:
pkill -HUP nginx
pkill
používá regulární výrazy ke shodě s názvy procesů. Vždy je dobré použít pgrep
příkaz k vytištění odpovídajících procesů před odesláním signálů k nim. Chcete-li například vypsat všechny procesy, které ve svých názvech obsahují „ssh“, postupujte takto:
1039 sshd
2257 ssh-agent
6850 ssh
31279 ssh-agent
Pokud chcete poslat signál pouze procesům, jejichž názvy jsou přesně podle vyhledávacího vzoru, použijte:
pkill '^ssh$'
Stříška (^
) se shodují znaky na začátku řetězce a dolar $
na konci.
Ve výchozím nastavení pkill
shoduje se pouze s názvem procesu. Když -f
Pokud je použita volba, příkaz se shoduje s úplnými seznamy argumentů. Pokud příkaz obsahuje mezery, citujte celý příkaz:
pkill -9 -f "ping 8.8.8.8"
Použijte -u
možnost sdělit pkill
aby odpovídal procesům spouštěným daným uživatelem:
pkill -u mark
Chcete-li zadat více uživatelů, oddělte jejich jména čárkami:
pkill -u mark,danny
Můžete také kombinovat možnosti a vzory vyhledávání. Například poslat KILL
signalizovat všechny procesy, které běží pod uživatelem „mark“ a obsahují „gnome“ ve svých názvech, které byste napsali:
pkill -9 -u mark gnome
Chcete-li zobrazit pouze nejméně nedávno (nejstarší) nebo naposledy (nejnovější) spuštěné procesy, použijte -n
(pro nejnovější) nebo -o
(pro nejstarší).
Chcete-li například zabít naposledy vytvořenou obrazovku:
pkill -9 -n screen
Závěr č.
pkill
příkaz se používá k odesílání signálů spuštěným programům na základě různých kritérií.
Další informace o pkill
přejděte na manuálovou stránku pkill nebo zadejte man pkill
ve vašem terminálu.
Pokud máte nějaké dotazy nebo zpětnou vazbu, neváhejte zanechat komentář.