Kiedy pracujesz, czasami Twoje programy nagle się zawieszają. Innym razem programy nadal działają, ale zużywają dużo procesora lub pamięci. Czy istnieje sposób na rozwiązanie tego problemu w systemie Linux za pomocą ps
(Pproces Status). Oto jak korzystać z ps
w systemie Linux, aby wyświetlić listę aktualnie uruchomionych procesów i ich PID. Następnie możesz znaleźć i zabić procesy, które zużywają Twoje zasoby.
Korzystanie z polecenia „ps”
ps
Polecenie może być używane samodzielnie. Wygeneruje cztery kolumny informacji:
- PID– Unikalny identyfikator procesu zdefiniowanego przez system. Jest to wartość, której używamy do zatrzymania procesu.
- TTY: terminal, z którego rozpoczął się proces.
- GODZINA– Całkowity czas procesora używany przez proces.
- CMD: polecenie wygenerowane przez proces

Zwróć uwagę, że gdy używasz polecenia bez opcji, nie wyświetla ono zbyt wielu informacji. Oto kilka sposobów na uczynienie go bardziej użytecznym.
1. Wymień proces dla wszystkich użytkowników
Po zainstalowaniu niektórych programów czasami tworzą również dodatkowych użytkowników do uruchamiania procesu. Aby wyświetlić listę procesów użytkownika, użyj -e
opcja:
i jego wyjście:
PID TTY TIME CMD 1 ? 00:00:02 systemd 2 ? 00:00:00 kthreadd 3 ? 00:00:00 kworker/: 4 ? 00:00:00 kworker/:0H 5 ? 00:00:00 kworker/u256: 6 ? 00:00:00 mm_percpu_wq
2. Wymień proces z dodatkowymi informacjami
Możesz uzyskać więcej informacji, gdy wymienisz uruchomiony proces. Aby to zrobić, możesz użyć ef
opcja.
i jego wyjście:
UID PID PPID C STIME TTY TIME CMD root 1 21:34 ? 00:00:03 /sbin/init maybe-ubiquity root 2 21:34 ? 00:00:00 [kthreadd] root 3 2 21:34 ? 00:00:00 [kworker/:] root 4 2 21:34 ? 00:00:00 [kworker/:0H] root 6 2 21:34 ? 00:00:00 [mm_percpu_wq] root 7 2 21:34 ? 00:00:00 [ksoftirqd/]
3. Filtruj proces według identyfikatora procesu
Jeśli znasz identyfikator uruchomionego procesu, który chcesz wyświetlić, możesz go specjalnie przefiltrować za pomocą -p
flaga. Może to wymagać wielu identyfikatorów PID jako argumentów, oddzielonych pojedynczym przecinkiem i bez spacji.
4. Wymień procesy, których właścicielem jest użytkownik.
Możesz również wyświetlić listę procesów, których właścicielem jest użytkownik, za pomocą u
opcja, po której następuje nazwa użytkownika:
i jego wyjście:
PID TTY TIME CMD 2832 ? 00:00:00 systemd 2842 ? 00:00:00 (sd-pam) 3043 ? 00:00:00 sshd 3044 pts/1 00:00:00 bash 18396 pts/1 00:00:00 ps
5. Wymień aktywne procesy
Możliwe jest wyświetlenie listy wszystkich aktywnych procesów za pomocą ax
opcja:
i jego wyjście:
PID TTY STAT TIME COMMAND 1 ? Ss :02 /sbin/init maybe-ubiquity 2 ? S :00 [kthreadd] 3 ? I :00 [kworker/:] 4 ? I< :00 [kworker/:0H] 6 ? I< :00 [mm_percpu_wq] 7 ? S :00 [ksoftirqd/]
6. Wymień aktywne procesy z użytkownikami.
Możliwe jest wyświetlenie listy wszystkich aktywnych procesów z użytkownikami po dodaniu -aux
flaga:
i jego wyjście:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.2 78132 9188 ? Ss 21:34 :02 /sbin/init maybe-ubiquity root 2 0.0 0.0 ? S 21:34 :00 [kthreadd] root 3 0.0 0.0 ? I 21:34 :00 [kworker/:] root 4 0.0 0.0 ? I< 21:34 :00 [kworker/:0H] root 6 0.0 0.0 ? I< 21:34 :00 [mm_percpu_wq] root 7 0.0 0.0 ? S 21:34 :00 [ksoftirqd/] root 8 0.0 0.0 ? I 21:34 :00 [rcu_sched] root 9 0.0 0.0 ? I 21:34 :00 [rcu_bh] root 10 0.0 0.0 ? S 21:34 :00 [migration/]
7. Przefiltruj proces według nazwy programu.
Informacje o konkretnym uruchomionym programie można uzyskać, stosując filtr na ps
Wynik:
i jego wyjście:
root 1508 0.0 2.2 1518156 90868 ? Ssl 21:34 :03 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock userkub+ 18429 0.0 0.0 13144 1108 pts/1 S+ 23:57 :00 grep --color=auto docker
Alternatywnie możesz również użyć C
możliwość filtrowania procesu po nazwie:

8. Pokaż konkretne kolumny
Oprócz czterech domyślnych kolumn możesz uzyskać ps
aby wyświetlić kolumnę dodatkowych informacji. Na przykład:
ps -e -o pid,uname,pcpu,pmem,comm

-o
flaga ustawia określone opcje wyświetlania wyjścia dla ps
wyniki polecenia. Zobacz pełną listę standardowe opcje wyświetlania dla ps.
9. Pokaż wyniki w hierarchicznym stylu drzewa
Wykorzystuje to sztukę ASCII do tworzenia struktury w stylu drzewa do wyświetlania procesów. Pokazuje procesy rozgałęzione i podrzędne jako potomków odpowiednich procesów nadrzędnych w kolejności zgodnej. Aby ukryć „gałęzie” drzewa, użyj -H
zamiast --forest
.
10. Pokaż wątki procesu

-L
flaga przełącza się na ekranie z wątkami dla dowolnej funkcjonalności ps. Jest najbardziej przydatny do śledzenia wątków określonego procesu.
11. Pokaż wszystkie procesy roota

Przeszukuj wszystkie uruchomione procesy za pomocą prawdziwych i skutecznych identyfikatorów root. To pokazuje je w pełnym formacie, dzięki -f
flaga. Możesz połączyć to z -o
flaga, aby dostosować dane wyjściowe.
Użyj polecenia kill, aby zatrzymać proces
Po zlokalizowaniu nieprawidłowo działającego procesu możesz użyć polecenia kill, aby zabić uruchomiony proces. Polecenie wysyła sygnał do procesu, który go kończy. Kiedy twoje programy są zamrożone, przez większość czasu będziesz musiał usunąć je siłą za pomocą -9
opcja.

Wynikiem działania ps jest widok migawki. w odróżnieniu htop
, Nie aktualizuje się dynamicznie. Oznacza to, że może być konieczne wielokrotne uruchamianie go, aby uzyskać jasny obraz tego, który proces działa nieprawidłowo. Aby uzyskać aktualny widok procesów, możesz wypróbować kilka innych poleceń dla systemu Linux.
.
Czy ten artykuł jest przydatny?