Wyszukiwanie w witrynie

30 przydatnych przykładów polecenia „ps” do monitorowania procesów w systemie Linux


ps (status procesów) to natywne narzędzie Unix/Linux służące do przeglądania informacji dotyczących wybranych procesów uruchomionych w systemie: odczytuje te informacje z plików wirtualnych w katalogu/system plików proc. Jest to jedno z ważnych narzędzi do administrowania systemem, szczególnie podczas monitorowania procesów, które pomaga zrozumieć, co dzieje się w systemie Linux.

Posiada wiele opcji manipulowania wynikami, jednak niewielka ich liczba jest praktycznie przydatna w codziennym użytkowaniu.

Przeczytaj także: Wszystko, co musisz wiedzieć o procesach w systemie Linux [Kompleksowy przewodnik]

W tym artykule przyjrzymy się 30 przydatnym przykładom poleceń ps do monitorowania aktywnych uruchomionych procesów w systemie Linux.

Pamiętaj, że ps generuje dane wyjściowe z linią nagłówka, która reprezentuje znaczenie każdej kolumny informacji. Znaczenie wszystkich etykiet możesz znaleźć na stronie podręcznika ps.

Wyświetl wszystkie procesy w bieżącej powłoce

1. Jeśli uruchomisz polecenie ps bez żadnych argumentów, wyświetli ono procesy dla bieżącej powłoki.

ps 

Wydrukuj wszystkie procesy w różnych formatach

2. Wyświetlaj każdy aktywny proces w systemie Linux w formacie ogólnym (Unix/Linux).

ps -A
OR
ps -e

3. Wyświetl wszystkie procesy w formacie BSD.

ps au
OR
ps axu

4. Aby wykonać listę w pełnym formacie, dodaj flagę -f lub -F.

ps -ef
OR
ps -eF

Wyświetl procesy uruchomione przez użytkownika

5. Możesz wybrać wszystkie swoje procesy (uruchamiający polecenie ps, w tym przypadku root), wpisz:

ps -x 

6. Aby wyświetlić procesy użytkownika według prawdziwego identyfikatora użytkownika (RUID) lub nazwy, użyj flagi -U.

ps -fU tecmint
OR
ps -fu 1000

7. Aby wybrać procesy użytkownika według efektywnego ID użytkownika (EUID) lub nazwy, użyj opcji -u .

ps -fu tecmint
OR
ps -fu 1000

Wydrukuj wszystkie procesy działające jako root (rzeczywisty i efektywny identyfikator)

8. Poniższe polecenie umożliwia wyświetlenie każdego procesu uruchomionego z uprawnieniami użytkownika root (rzeczywisty i efektywny identyfikator) w formacie użytkownika.

ps -U root -u root 

Wyświetl procesy grupowe

9. Jeśli chcesz wyświetlić listę wszystkich procesów należących do określonej grupy (prawdziwy identyfikator grupy (RGID) lub nazwa), wpisz.

ps -fG apache
OR
ps -fG 48

10. Aby wyświetlić listę wszystkich procesów należących do efektywnej nazwy grupy (lub sesji), wpisz.

ps -fg apache

Wyświetlaj procesy według PID i PPID

11. Możesz wyświetlić listę procesów według PID w następujący sposób.

ps -fp 1178

12. Aby wybrać proces według PPID, wpisz.

ps -f --ppid 1154

13. Dokonaj wyboru, korzystając z listy PID.

ps -fp 2226,1154,1146

Wyświetlanie procesów według TTY

14. Aby wybrać procesy według tty, użyj flagi -t w następujący sposób.


ps -t pts/0
ps -t pts/1
ps -ft tty1

Wydrukuj drzewo procesów

15. Drzewo procesów pokazuje, jak procesy w systemie są ze sobą powiązane; procesy, których rodzice zostali zabici, są adoptowane przez init (lub systemd).

ps -e --forest 

16. Możesz także wydrukować drzewo procesów dla danego procesu w ten sposób.

ps -f --forest -C sshd
OR
ps -ef --forest | grep -v grep | grep sshd 

Drukuj wątki procesu

17. Aby wydrukować wszystkie wątki procesu, użyj flagi -L, wyświetli to LWP (lekki proces) oraz kolumny NLWP (liczba lekkich procesów).

ps -fL -C httpd

Określ niestandardowy format wyjściowy

Używając opcji -o lub –format, ps umożliwia tworzenie zdefiniowanych przez użytkownika formatów wyjściowych, jak pokazano poniżej.

18. Aby wyświetlić listę wszystkich specyfikatorów formatu, dołącz flagę L.

ps L

19. Poniższe polecenie pozwala wyświetlić PID, PPID, nazwę użytkownika i polecenie procesu.

ps -eo pid,ppid,user,cmd

20. Poniżej znajduje się kolejny przykład niestandardowego formatu wyjściowego pokazujący grupę systemów plików, wartość nice, czas rozpoczęcia i czas, który upłynął procesu.

ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime

21. Aby znaleźć nazwę procesu na podstawie jego PID.

ps -p 1154 -o comm=

Wyświetl procesy nadrzędne i podrzędne

22. Aby wybrać konkretny proces według jego nazwy, użyj flagi -C, spowoduje to również wyświetlenie wszystkich jego procesów potomnych.

ps -C sshd

23. Znajdź wszystkie PID wszystkich instancji procesu, przydatne podczas pisania skryptów, które muszą czytać PID ze standardowego wyjścia lub pliku.

ps -C httpd -o pid=

24. Sprawdź czas wykonania procesu.

ps -eo comm,etime,user | grep httpd

Poniższe dane wyjściowe pokazują, że usługa HTTPD działa od 1 godziny, 48 minut i 17 sekund.

Rozwiązywanie problemów z wydajnością systemu Linux

Jeśli Twój system nie działa tak, jak powinien, na przykład jest niezwykle powolny, możesz rozwiązać problemy z systemem w następujący sposób.

26. Znajdź najczęściej działające procesy według najwyższego zużycia pamięci i procesora w systemie Linux.

ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
OR
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head

27. Aby zakończyć procesy Linuksa/aplikacje, które nie odpowiadają lub jakikolwiek proces zużywający dużo czasu procesora.

Najpierw znajdź PID procesu lub aplikacji, która nie odpowiada.

ps -A | grep -i stress

Następnie użyj polecenia kill, aby natychmiast je zakończyć.

kill -9 2583 2584

Wydrukuj informacje dotyczące bezpieczeństwa

28. Pokaż kontekst bezpieczeństwa (szczególnie dla SELinux) w ten sposób.

ps -eM
OR
ps --context

29. Za pomocą tego polecenia możesz także wyświetlić informacje dotyczące bezpieczeństwa w formacie zdefiniowanym przez użytkownika.

ps -eo  euser,ruser,suser,fuser,f,comm,label

Monitoruj proces w czasie rzeczywistym za pomocą narzędzia Watch Utility

30. Wreszcie, ponieważ ps wyświetla informacje statyczne, możesz użyć narzędzia watch do monitorowania procesu w czasie rzeczywistym z powtarzającymi się danymi wyjściowymi, wyświetlanymi co sekundę, jak w poleceniu poniżej (określ niestandardowe polecenie ps, aby osiągnąć swój cel).

watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'

Ważne: ps pokazuje tylko informacje statyczne, aby wyświetlić często aktualizowane dane wyjściowe, możesz użyć narzędzi takich jak htop; na górę i rzut oka: dwa ostatnie to w rzeczywistości narzędzia do monitorowania wydajności systemu Linux.

Możesz także przeczytać następujące powiązane artykuły.

  1. Jak znaleźć nazwę procesu za pomocą numeru PID w systemie Linux
  2. Znajdź najczęściej działające procesy według najwyższego użycia pamięci i procesora w systemie Linux
  3. Przewodnik po poleceniach Kill, Pkill i Killall w celu zakończenia procesu w systemie Linux
  4. Jak znaleźć i zabić działające procesy w systemie Linux
  5. Jak uruchomić polecenie systemu Linux w tle i odłączyć proces w terminalu

To wszystko na teraz. Jeśli masz jakieś przydatne przykłady poleceń ps, którymi możesz się podzielić (nie zapominając o wyjaśnieniu, do czego służą), skorzystaj z poniższego formularza komentarza.