Porady Admina

Porady Admina: pgrep

Ostatnia aktualizacja: 28 września 2025, 17:42

W dzisiejszym wpisie z cyklu Porady Admina zajmiemy się poleceniem pgrep.

Być może znasz już polecenie grep i egrep w systemie Linux, które wyszukują wzorzec, a następnie wyświetlają pasujący tekst w wynikach.

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ć.

pgrep jest częścią pakietu procps.

Składnia

pgrep [opcje] wzorzec

Opcje

–signal sygnał : Definiuje sygnał, który ma zostać wysłany do każdego dopasowanego procesu. Można użyć numerycznej lub symbolicznej nazwy sygnału. W trybach pgrep lub pidwait można użyć tylko opcji long, która nie ma żadnego efektu, chyba że zostanie użyta w połączeniu z opcją –require-handler w celu filtrowania do procesów z obsługą sygnału w przestrzeni użytkownika dla danego sygnału.
-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ą.
-d, –delimiter separator : Ustawienie łańcucha oddzielającego identyfikatory procesów na wyjściu (domyślnie nowa linia).
-f, –full : Wzorzec normalnie jest dopasowywany tylko do nazwy procesu. Z ustawioną opcją -f, wykorzystywana jest cała linia poleceń.
-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.
-a, –list-full : Wypisanie pełnych linii poleceń oraz identyfikatorów procesów.
-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 : Odczytaj PID-y z pliku. Ta opcja jest bardziej przydatna dla 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.
-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
–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 : Dopasuj tylko podane przestrzenie nazw. Dostępne przestrzenie nazw: ipc, mnt, net, pid, user, uts. -q, –queue wartość: Użyj sigqueue zamiast kill, a argument wartość służy do określenia liczby całkowitej, która ma zostać wysłana z sygnałem. Jeśli proces odbierający zainstalował procedurę obsługi tego sygnału, używając flagi SA_SIGINFO do sigaction, może uzyskać te dane za pośrednictwem pola si_value struktury siginfo_t.

Przykłady

Jak znaleźć identyfikator procesu, np. thunar należącego do użytkownika pawel.
pgrep -u pawel thunar

Jeśli chcesz, aby pgrep wyświetlał tylko liczbę, a nie same identyfikatory, użyj opcji -c. Na przykład, aby sprawdzić liczbę procesów należących do użytkownika pawel, uruchom następujące polecenie:
pgrep -c -u pawel

Domyślnie identyfikatory procesów w danych wyjściowych są rozdzielone znakiem nowej linii. Jeśli chcesz, możesz zmienić separator, używając opcji wiersza poleceń -d, np (:)
pgrep -u pawel -d:

Domyślnie wyszukiwanie pgrep uwzględnia wielkość liter. Jeśli chcesz, możesz je wyłączyć. W tym celu należy użyć opcji -i.
pgrep -i thunar

Jak sprawić, aby pgrep wyświetlał również nazwy procesów? W tym celu należy użyć opcji wiersza poleceń -l.
pgrep -u pawel -l

Jeśli chcesz, aby pgrep wyświetlał pełne polecenie użyte do uruchomienia każdego procesu, użyj opcji wiersza poleceń -a.
pgrep -u pawel -a

Więcej informacji o pgrep uzyskasz wpisując:
man pgrep
pgrep --help

Click to rate this post!
[Total: 1 Average: 5]

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.

Accessibility Toolbar