pgrep, pkill, pidwait - wyszukiwanie, wysyłanie
sygnałów lub oczekiwanie na procesy na podstawie nazwy i
innych atrybutów
pgrep [opcje] wzorzec
pkill [opcje] wzorzec
pidwait [opcje] wzorzec
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.
- -sygnał
- --signal
sygnał
- Defines the signal to send to each matched process. Either the numeric or
the symbolic signal name can be used. In pgrep or pidwait
mode only the long option can be used and has no effect unless used in
conjunction with --require-handler to filter to processes with a
userspace signal handler present for a particular signal.
- -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
- Read PIDs from file. This option is more useful for
pkill or pidwait than 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.
- -H,
--require-handler
- Only match processes with a userspace signal handler present for the
signal to be sent.
- --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,...
- Match only the provided namespaces. Available namespaces: ipc, mnt, net,
pid, user, uts.
- -q, --queue
wartość
- Use sigqueue(3) rather than kill(2) and the value argument
is used to specify an integer to be sent with the signal. If the receiving
process has installed a handler for this signal using the SA_SIGINFO flag
to sigaction(2), then it can obtain this data via the si_value
field of the siginfo_t structure.
- -V, --version
- Wyświetlenie informacji o wersji i zakończenie.
- -h, --help
- Wyświetlenie opisu i zakończenie.
- wzorzec
- Określenie rozszerzonego wyrażenia regularnego do
dopasowania nazwy procesu lub linii poleceń.
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)
- 0
- One or more processes matched the criteria. For pkill and
pidwait, one or more processes must also have been successfully
signalled or waited for.
- 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.
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.
The -O --older option will silently fail if /proc is
mounted with the subset=pid option.
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.
ps(1), regex(7), signal(7),
sigqueue(3), killall(1), skill(1), kill(1),
kill(2), cgroups(8).