Wszystko, co działa w systemie Linux, od aplikacji użytkownika po usługę systemową, jest odrębnym procesem. Nawet jeśli twój komputer znajduje się na pustym ekranie terminala, niewątpliwie w tle działa mnóstwo procesów. Istnieje kilka narzędzi Linuksa, których możemy użyć do zidentyfikowania wszystkich procesów w naszym systemie i właśnie to omówimy w tym przewodniku.
Wiedza o tym, jak sprawdzić, czy istnieją uruchomione procesy, pozwoli Ci sprawdź, czy coś działa, zakończ je, jeśli to konieczne, i monitoruj jego wpływ na zasoby systemu (procesor i pamięć RAM).
Lista procesów za pomocą polecenia ps
Polecenie ps może wyświetlić wszystkie procesy działające w systemie Linux z opcją -e.
ps -e
To normalne, że system ma dużą liczbę procesów działających w w dowolnym momencie, więc łatwiej jest przejrzeć tę listę, przesyłając polecenie potokiem do większej liczby. Na przykład, aby wyświetlić 15 wierszy naraz:
ps -e | more -15
Wyjście z ps pokazuje nam każdy działający proces, jego odpowiedni identyfikator procesu (w skrócie PID) i TTY (interfejs terminala, na którym działa proces). Znak zapytania w kolumnie TTY oznacza, że proces nie jest „t dołączony do dowolnego terminala int erface – działa po prostu w tle.
Może być konieczne poznanie PID procesu, aby go zabić, lub TTY, aby móc powrócić do otwartego procesu, podłączając ponownie do właściwego okno terminala.
Inną przydatną opcją w ps jest opcja -aux.
ps -aux
Podobnie jak w poprzedniej opcji, wyświetli ona wszystkie procesy działa w twoim systemie. Ale wyświetla również bieżące użycie procesora i pamięci RAM dla każdego procesu, a także polecenie, które stworzyło każdy proces.
Znajdowanie procesu za pomocą pgrep
Kombinacje typu pgrep Commad ps i grep dla nas. Możemy określić nazwę – lub część nazwy – procesu, którego szukamy, a pgrep zwróci odpowiednie identyfikatory procesów.
Na przykład, aby wyszukać dowolny SSH związany z procesem w systemie, należy wpisać:
pgrep ssh
Jak pokazano na powyższym zrzucie ekranu, pgrep znalazł proces SSH z PID 1143. Dla dalszych weryfikacja, sprawdźmy poleceniem ps:
ps -e | grep 1143
Wyświetl uruchomione procesy za pomocą polecenia top
Najważniejszym narzędziem jest oczywiście jest narzędziem wiersza poleceń, ale zapewnia interaktywne dane wyjściowe wszystkich aktualnie uruchomionych procesów, wyświetlając w interfejsie graficznym informacje, jakich można się spodziewać. Rozpoczęcie jest łatwe, wystarczy wpisać top:
top
Wyjście z góry dostarcza nam wi th wiele informacji, w tym ogólne użycie procesora i pamięci RAM w naszym systemie. Ale jesteśmy tutaj, aby wyświetlić listę procesów, którą znajdziesz bezpośrednio poniżej.
Okno terminala po prostu nie jest wystarczająco duże, aby umożliwić topowi wypisanie każdego działającego procesu, więc top wyświetla tyle jak to możliwe i porządkuje je według wykorzystania zasobów systemowych. Innymi słowy, procesy wykorzystujące najwięcej procesora i pamięci RAM będą wymienione na górze. Mniej wymagające procesy pojawią się niżej na liście, prawdopodobnie odcięte od okna terminala.
Użyj klawiszy strzałek na klawiaturze, aby przewijać listę procesów w górę iw dół.
Lista zawiera sporo informacji o każdym uruchomionym procesie. Oto krótkie podsumowanie znaczenia tych różnych kolumn:
- PID: identyfikator procesu każdego zadania.
- PR: priorytet harmonogramu zadania.
- NI: Ładna wartość zadania. Liczby ujemne oznaczają wyższy priorytet.
- VIRT: Ilość używanej pamięci wirtualnej.
- RES: Ilość pamięci rezydentnej używane.
- SHR: Ilość używanej pamięci współdzielonej.
- S: Stan zadania (R = uruchomione, S = uśpione).
- % CPU: Bieżący procent wykorzystania procesora przez zadanie.
- % MEM: Bieżący procent pamięci RAM używany przez zadanie.
- TIME +: Czas procesora zadania.
- COMMAND: Polecenie użyte do zrobienia zadania.
Jak wspomniano, top jest interaktywny, więc możemy użyć skrótów klawiaturowych, aby zrobić z nim kilka fajnych rzeczy. Poniżej omówię kilka bardziej przydatnych.
Naciśnij klawisz z, aby oznaczyć kolorami uruchomione procesy. Ułatwia to odróżnienie uruchomionych zadań od procesów uśpionych lub zombie.
Naciśnij klawisz c, aby uzyskać pełną komendę używaną dla każdego zadania. Spowoduje to wyświetlenie ścieżki bezwzględnej wraz z wszelkimi użytymi opcjami.
Naciśnij klawisz k, aby zabić działający proces, bezpośrednio z narzędzia u góry. Oszczędza to trochę czasu od konieczności wychodzenia z narzędzia i wydawania oddzielnego polecenia zabicia. Wystarczy wpisać PID procesu, który chcesz zakończyć:
Naciśnij klawisz r, aby zmienić priorytet procesu z renice. Wprowadź PID procesu, który chcesz zmienić:
Aby uzyskać więcej opcji, naciśnij klawisz h (pomoc), aby zobaczyć wszystko, co jeszcze może zrobić top.
Po zakończeniu korzystania z głównego narzędzia możesz wyjść z narzędzia i powrócić do terminala, naciskając q.
Wyświetl uruchomione procesy za pomocą htop
Narzędzie htop buduje się od góry i jest trochę bardziej przyjazne dla użytkownika i przyjemniejsze do oglądania. Jedyną wadą jest to, że nie jest domyślnie instalowany we wszystkich dystrybucjach Linuksa, więc może być konieczne zainstalowanie go najpierw. Powinien znajdować się w repozytoriach systemu operacyjnego, więc oto jak zainstalować go za pomocą menedżera pakietów:
Debian i Ubuntu:
sudo apt-get install htop
CentOS i Fedora:
dnf install htop
Red Hat:
yum install htop
Po zainstalowaniu wpisz htop, aby uruchomić narzędzie.
htop
Możesz używać myszy do interakcji z htop, a różne polecenia klawiaturowe są wymienione na dole okna terminala. Działa prawie tak samo jak top, ale ma bardziej przejrzysty interfejs, który jest łatwiejszy do zrozumienia.
Podsumowanie
W tym przewodniku pokazaliśmy kilka różnych metod przeglądania uruchomionych procesów w systemie Linux. Który z nich zostanie użyty, będzie zależał od aktualnej sytuacji i Twoje osobiste preferencje, ale każda metoda ma swoje zalety.