PGREP(1)

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 (kjetilho@ifi.uio.no)

ZGŁASZANIE BŁĘDÓW
Zgłoszenia błędów prosimy wysyłać na adres procps@freelists.org