table of contents
PGREP(1) | Polecenia użytkownika | 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¶
ZGŁASZANIE BŁĘDÓW¶
Zgłoszenia błędów prosimy wysyłać na adres procps@freelists.org
2022-08-31 | procps-ng |