NAZWA

pgrep, pkill, pidwait - wyszukiwanie, wysyłanie sygnałów lub oczekiwanie na procesy na podstawie nazwy i innych atrybutów

SKŁADNIA

pgrep [opcje] wzorzec
 
pkill [opcje] wzorzec
 
pidwait [opcje] wzorzec

OPIS

pgrep przeszukuje aktualnie działające procesy i wypisuje na standardowym wyjściu identyfikatory procesów, które pasują do wybranych kryteriów. Wszystkie kryteria muszą pasować. Na przykład:
$ pgrep -u root sshd
wypisze tylko listę procesów o nazwie sshd ORAZ będących własnością roota. Z drugiej strony:
$ pgrep -u root,daemon
wypisze procesy, których właścicielem jest root LUB daemon.
pkill zamiast wypisywania procesów wyśle do każdego podany sygnał (domyślnie SIGTERM).
pidwait zamiast wypisywania procesów oczekuje na nie.

OPCJE

-sygnał
--signal sygnał Określenie sygnału, jaki ma być wysłany do wszystkich pasujących procesów. Może być numerem lub nazwą sygnału. (tylko pkill)
-c, --count
Pominięcie zwykłego wyjścia; zamiast niego wypisanie liczby pasujących procesów. Jeśli nic nie zostanie policzone (np. liczba będzie zerem), polecenie zwróci wartość niezerową. Uwaga: w przypadku pkill i pidwait zwracana wartość to liczba pasujących procesów, a nie procesów, do których udało się dostarczyć sygnał lub zaczekać na zakończenie.
-d, --delimiter separator
Ustawienie łańcucha oddzielającego identyfikatory procesów na wyjściu (domyślnie nowa linia). (tylko pgrep)
-e, --echo
Wyświetlanie nazw oraz identyfikatorów zabijanych procesów (tylko pkill).
-f, --full
wzorzec normalnie jest dopasowywany tylko do nazwy procesu. Z ustawioną opcją -f, wykorzystywana jest cała linia poleceń.
-g, --pgroup pgrp,...
Dopasowanie tylko do procesów z grup o podanych identyfikatorach. Grupa procesów 0 jest tłumaczona na własną grupę procesów polecenia pgrep, pkill lub pidwait.
-G, --group gid,...
Dopasowanie tylko do procesów o podanych identyfikatorach grup rzeczywistych. Można użyć wartości liczbowych lub symbolicznych.
-e, --ignore-case
Dopasowywanie procesów bez rozróżniania wielkości liter.
-l, --list-name
Wypisanie nazw oraz identyfikatorów procesów. (tylko pgrep)
-a, --list-full
Wypisanie pełnych linii poleceń oraz identyfikatorów procesów. (tylko pgrep)
-n, --newest
Wybór tylko najnowszych (najpóźniej uruchomionych) spośród pasujących procesów.
-o, --oldest
Wybór tylko najstarszych (najwcześniej uruchomionych) spośród pasujących procesów.
-O, --older sekundy
Wybór procesów starszych niż podana liczba sekund.
-P, --parent ppid,...
Dopasowanie tylko do procesów o wymienionych identyfikatorach procesów rodziców.
-s, --session sid,...
Dopasowanie tylko do procesów o wymienionych identyfikatorach sesji procesów. Identyfikator sesji 0 jest tłumaczony na własny procesu pgrep, pkill lub pidwait.
-t, --terminal term,...
Dopasowanie tylko do procesów o wymienionych terminalach sterujących. Nazwa terminala powinna być podana bez przedrostka "/dev/".
-u, --euid euid,...
Dopasowanie tylko do procesów o wymienionych identyfikatorach użytkowników efektywnych. Można użyć wartości liczbowych lub symbolicznych.
-U, --uid uid,...
Dopasowanie tylko do procesów o wymienionych identyfikatorach użytkowników rzeczywistych. Można użyć wartości liczbowych lub symbolicznych.
-v, --inverse
Negacja dopasowania. Zwykle używana w kontekście programu pgrep lub pidwait. W kontekście pkill krótka opcja jest wyłączona, aby zapobiec przypadkowemu użyciu.
-w, --lightweight
Wyświetlenie wszystkich identyfikatorów wątków zamiast pidów w kontekście programu pgrep lub pidwait. W kontekście pkill ta opcja jest wyłączona.
-x, --exact
Dopasowanie tylko do procesów, których nazwy (lub linie poleceń, jeśli podano opcję -f) pasują dokładnie do wzorca.
-F, --pidfile plik
Odczyt PIDów z pliku. Ta opcja jest bardziej przydatna dla programu pkill lub pidwait niż pgrep.
-L, --logpidfile
Niepowodzenie, jeśli plik PID (p. opcja -F) nie jest zablokowany.
-r, --runstates D,R,S,Z,...
Dopasowanie tylko do procesów o pasującym stanie.
-e, --ignore-ancestors
Ignorowanie wszystkich przodków pgrep, pkill i pidwait. Może to być przydatne np. przy podnoszeniu uprawnień przez sudo lub podobne narzędzia.
--cgroup nazwa,...
Dopasowanie po przekazanej nazwie grupy kontrolnej (cgroup) v2. P. cgroups(8)
--ns pid
Dopasowanie do procesów należących do tych samych przestrzeni nazw. Wymagane w przypadku uruchamiania przez roota, aby dopasować do procesów innych użytkowników. Więcej o ograniczaniu dopasowywanych przestrzeni nazw przy opcji --nslist.
--nslist nazwa,...
Dopasowanie tylko do podanych przestrzeni nazw. Dostępne przestrzenie: ipc, mnt, net, pid, user, uts.
-q, --queue wartość
Użycie sigqueue(3) zamiast kill(2), a argument będący wartością określa liczbę całkowitą do wysłania wraz z sygnałem. Jeśli proces odbierający ma zainstalowaną procedurę obsługi dla tego sygnału przy użyciu flagi SA_SIGINFO wywołania sigaction(2), może następnie odebrać te dane w poli si_value struktury siginfo_t.
-V, --version
Wyświetlenie informacji o wersji i zakończenie.
-h, --help
Wyświetlenie opisu i zakończenie.

ARGUMENTY

wzorzec
Określenie rozszerzonego wyrażenia regularnego do dopasowania nazwy procesu lub linii poleceń.

PRZYKŁADY

Przykład 1: znalezienie identyfikatora procesu demona named:
$ pgrep -u root named
Przykład 2: wymuszenie ponownego odczytu pliku konfiguracyjnego przez program syslog:
$ pkill -HUP syslogd
Przykład 3: podanie szczegółowych informacji o wszystkich procesach xterm:
$ ps -fp $(pgrep -d, -x xterm)
Przykład 4: zwiększenie nice wszystkich procesów chrome:
$ renice +4 $(pgrep chrome)

KOD WYJŚCIA

0
Jeden lub więcej procesów pasowało do warunków. W przypadku pkill i pidwait, musi udać się wysłać sygnał lub zaczekać na przynajmniej jeden proces.
1
Brak procesów pasujących do warunków lub do żadnego nie udało się wysłać sygnału.
2
Błąd składni w linii poleceń.
3
Błąd krytyczny: brak pamięci itp.

UWAGI

Nazwa procesu używana przy dopasowaniu jest ograniczona do 15 znaków obecnych w wyjściu /proc/ pid/stat. Aby dopasować do pełnej linii poleceń (/proc/ pid/cmdline), należy użyć opcji -f. Wątki mogą nie mieć tej samej nazwy procesu jako rodzica, ale będą miały tę samą linię poleceń.
Działający proces pgrep, pkill ani pidwait nigdy nie zgłosi siebie jako dopasowania.
Opcja -O --older cicho się nie powiedzie, jeśli /proc jest zamontowany z opcją subset=pid.

BŁĘDY

Opcji -n, -o oraz -v nie można łączyć. Gdyby było to przydatne, proszę zawiadomić autora.
Zgłoszono procesy nie funkcjonujące.
pidwait wymaga wywołania systemowego pidfd_open(2), które pojawiło się w Linuksie 5.3.

ZOBACZ TAKŻE

ps(1), regex(7), signal(7), sigqueue(3), killall(1), skill(1), kill(1), kill(2), cgroups(8)

AUTOR

Kjetil Torgrim Homme

ZGŁASZANIE BŁĘDÓW

Zgłoszenia błędów prosimy wysyłać na adres [email protected]

Recommended readings

Pages related to pgrep you should read also: