30 Przydatne przykłady „polecenia ps” do monitorowania procesów w systemie Linux
ps (stan procesów) to natywne narzędzie Unix / Linux do przeglądania informacji dotyczących zaznaczenia procesów uruchomionych w systemie: odczytuje te informacje z plików wirtualnych w systemie plików / proc. Jest to jedno z ważnych narzędzi do administrowania systemem, szczególnie w trakcie monitorowania procesu, aby pomóc ci zrozumieć, co dzieje się w systemie Linux.
Ma wiele opcji manipulowania jego danymi wyjściowymi, jednak znajdziesz mały wiele z nich jest praktycznie przydatnych do codziennego użytku.
Przeczytaj także: Wszystko, co musisz wiedzieć o procesach w Linuksie
W tym artykule przyjrzymy się 30 przydatnym przykładom poleceń ps do monitorowania aktywnych działających procesów w systemie Linux.
Zauważ, że ps generuje wynik z wierszem nagłówka, który reprezentuje znaczenie każdej kolumny informacji, możesz znaleźć znaczenie wszystkich etykiet w ps man
Wyświetl wszystkie procesy w bieżącej powłoce
1. Jeśli uruchomisz polecenie ps bez żadnych argumentów, wyświetli procesy dla bieżącej powłoki.
$ ps
Drukuj wszystkie procesy w różnych formatach
2. Wyświetl każdy aktywny proces w systemie Linux w formacie ogólnym (Unix / Linux).
$ ps -AOR$ ps -e
3. Wyświetl wszystkie procesy w formacie BSD.
$ ps auOR$ ps axu
4. Aby wykonać listę w pełnym formacie, dodaj flagę -f
lub -F
.
$ ps -efOR$ ps -eF
Wyświetl procesy uruchomione przez użytkownika
5. Możesz wybrać wszystkie procesy, których jesteś właścicielem (runner polecenia ps, w tym przypadku root), wpisz:
$ ps -x
6. Aby wyświetlić procesy użytkownika według rzeczywistego identyfikatora użytkownika (RUID) lub nazwy, użyj flagi -U
.
$ ps -fU tecmintOR$ ps -fu 1000
7. Aby wybrać procesy użytkownika według efektywnego identyfikatora użytkownika (EUID) lub nazwy, użyj opcji -u
.
$ ps -fu tecmintOR$ ps -fu 1000
Drukuj wszystkie procesy działające jako root (identyfikator rzeczywisty i efektywny)
8. Poniższe polecenie umożliwia wyświetlenie każdego procesu uruchomionego z uprawnieniami użytkownika root (real & efektywny identyfikator) w formacie użytkownika.
$ ps -U root -u root
Wyświetl procesy grupowe
9. Jeśli chcesz wyświetlić wszystkie procesy należące do określonej grupy (rzeczywisty identyfikator grupy (RGID) lub nazwa), wpisz.
$ ps -fG apacheOR$ ps -fG 48
10. Aby wyświetlić wszystkie procesy należące do efektywnej nazwy grupy (lub sesji), wpisz.
$ ps -fg apache
Wyświetl 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 za pomocą listy PID.
$ ps -fp 2226,1154,1146
Wyświetl procesy według TTY
14. Aby wybrać procesy według tty, użyj flagi -t w następujący sposób.
$ ps -t pst/0$ ps -t pst/1$ ps -ft tty1
Wydrukuj drzewo procesów
15. Drzewo procesów pokazuje, w jaki sposób procesy w systemie są ze sobą powiązane; procesy, których rodzice zostali zabici, są przejmowane przez init (lub systemd).
$ ps -e --forest
16. Możesz także wydrukować drzewo procesów dla danego procesu, takiego jak ten.
$ ps -f --forest -C sshdOR$ ps -ef --forest | grep -v grep | grep sshd
Drukuj wątki procesu
17. Aby wydrukować wszystkie wątki procesu, użyj flagi -H
, co spowoduje wyświetlenie kolumn LWP (proces lekki) oraz NLWP (liczba procesów lekkich).
$ ps -fL -C httpd
Określ niestandardowy format wyjściowy
Używając opcji -o lub –format, ps umożliwia tworzenie formatów wyjściowych zdefiniowanych przez użytkownika, jak pokazano poniżej.
18. Aby wyświetlić wszystkie specyfikatory formatu, dołącz flagę L
.
$ ps L
19. Poniższe polecenie umożliwia wyświetlenie PID, PPID, nazwy użytkownika i polecenia procesu.
$ ps -eo pid,ppid,user,cmd
20. Poniżej znajduje się kolejny przykład niestandardowego formatu wyjściowego pokazujący grupę systemu plików, fajną wartość, czas rozpoczęcia i czas, który upłynął dla procesu.
$ ps -p 1154 -o pid,ppid,fgroup,ni,lstart,etime
21. Aby znaleźć nazwę procesu za pomocą jego PID.
$ ps -p 1154 -o comm=
Wyświetl procesy nadrzędne i podrzędne
22. Aby wybrać określony 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 identyfikatory PID wszystkich wystąpień procesu, przydatne podczas pisania skryptów, które muszą odczytywać identyfikatory PID ze standardowego wyjścia lub pliku.
$ ps -C httpd -o pid=
24. Sprawdź czas wykonywania procesu.
$ ps -eo comm,etime,user | grep httpd
Poniższe dane wyjściowe pokazują, że usługa HTTPD działała przez 1 godzinę, 48 minut i 17 sekund.
Rozwiązywanie problemów Wydajność systemu Linux
Jeśli twój system nie działa tak, jak powinien, na przykład jest niezwykle wolny, możesz wykonać następujące czynności rozwiązywania problemów.
26. Znajdź najczęściej działające procesy według największego wykorzystania pamięci i procesora w systemie Linux.
$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | headOR$ ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head
27. Aby zabić procesy Linuksa / nieodpowiadające aplikacje lub jakikolwiek proces, który zużywa 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 zakończyć.
$ kill -9 2583 2584
Wydrukuj informacje o zabezpieczeniach
28. Pokaż kontekst bezpieczeństwa (szczególnie dla SELinux) w ten sposób.
$ ps -eMOR$ ps --context
29. Za pomocą tego polecenia można również wyświetlić informacje 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
30. Wreszcie, ponieważ ps wyświetla statyczne informacje, możesz użyć narzędzia watch do monitorowania procesu w czasie rzeczywistym z powtarzalnymi danymi wyjściowymi, wyświetlanymi co sekundę, jak w poniższym poleceniu (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 statyczne informacje, aby wyświetlić często aktualizowane dane wyjściowe, możesz użyć narzędzi takich jak htop; do góry i spojrzenia: ostatnie dwa to w rzeczywistości narzędzie do monitorowania wydajności systemu Linux.
Możesz również przeczytać następujące powiązane artykuły.
- Jak znaleźć nazwę procesu na podstawie numeru PID w systemie Linux
- Znajdź najczęściej działające procesy według największego wykorzystania pamięci i procesora w systemie Linux
- Przewodnik po Polecenia Kill, Pkill i Killall do zakończenia procesu w systemie Linux
- Jak znaleźć i zabić uruchomione procesy w systemie Linux
- Jak uruchomić polecenie Linuksa w tle i odłączyć proces w terminalu