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.
- Jak znaleźć nazwę procesu za pomocą numeru PID w systemie Linux
- Znajdź najczęściej działające procesy według najwyższego użycia pamięci i procesora w systemie Linux
- Przewodnik po poleceniach Kill, Pkill i Killall w celu zakończenia procesu w systemie Linux
- Jak znaleźć i zabić działające procesy w systemie Linux
- 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.