50% zniżki wszystkie plany, oferta czasowa. Od $2.48/mo
10 min pozostało
Serwery i system operacyjny

Zarządzanie procesami w praktyce – polecenie ps aux Linux

Ada Lovegood By Ada Lovegood Czytanie 10 minut Zaktualizowano 11 lipca 2024
polecenie ps aux w Linuksie

Masz otwartych co najmniej pięć innych kart w przeglądarce, próbując znaleźć odpowiedź na problem z Linux, na który natknąłeś się?
To zachowanie nie jest specyficzne dla Ciebie ani dla ludzi w ogólności. Maszyny też wykonują wiele zadań jednocześnie. I tak jak Ty, Linux jest również multitaskerem i ma kilka procesów działających jednocześnie. Niezależnie od tego, czy jesteś deweloperem profesjonalnie korzystającym z Linux, czy zwykłym użytkownikiem pracującym z Linux na co dzień, powinieneś być w stanie zrozumieć te równoległe procesy, aby utrzymać pełną kontrolę nad swoim systemem. Zarządzanie procesami i kontrola systemu to niezbędne aspekty uruchamiania systemu Linux.

Aby efektywnie zarządzać procesami uruchomionymi w systemie, widzieć, co się dzieje w czasie rzeczywistym, mieć ogólne pojęcie o wszystkich procesach działających w tle oraz kontrolować zasoby systemowe, wymagana jest wiedza techniczna na temat zarządzania procesami. Polecenie ps aux to potężne polecenie, które odgrywa istotną rolę w zarządzaniu procesami i kontroli systemu. W tym artykule poznasz więcej na temat polecenia ps aux i jego zastosowań. Omówimy również podstawy działania procesów Linux.

Zrozumienie zarządzania procesami w Linux

Pracując z Linux, większość naszych interakcji z systemem odbywa się poprzez polecenia. W Linux proces to wykonanie polecenia. Zarządzanie procesami Linux obejmuje manipulowanie procesami uruchomionymi przez polecenie. Możesz zakończyć proces, uruchomić proces lub wznowić procesy, które zostały zakończone. Możesz również manipulować poleceniami, które są w toku.

Istnieją dwa typy procesów Linux:

  • Procesy pierwszoplanowe
  • Procesy w tle

Procesy pierwszoplanowe Linux

Proces pierwszoplanowy to proces, który jest aktywnie wykonywany i zazwyczaj wymaga stałej i bezpośredniej interakcji z użytkownikiem. Gdy proces pierwszoplanowy jest w działaniu, wykonanie innych procesów jest wstrzymane. Dlatego nie możesz uruchamiać żadnych innych poleceń. Proces pierwszoplanowy otrzymuje dane wejściowe z klawiatury jako standardowe wejście lub stdin. Aby uniknąć zamieszania, stdin i stdout są strumieniami danych Linux obok stderr. To w zasadzie sposób, w jaki użytkownik wchodzi w interakcję z procesem i dostarcza do niego dane. Istnieje standardowe wyjście lub stdout, które jest wytwarzane przez proces na podstawie jego funkcjonalności i danych wejściowych. Procesy pierwszoplanowe są domyślnym trybem wykonania w Linux.

Procesy drugoplanu Linux

Procesy drugoplanu są dokładnym przeciwieństwem procesów pierwszoplanowych, ponieważ nie wymagają interakcji użytkownika i nie zajmują wyłącznie pełnej przestrzeni terminala, co pozwala na wykonanie innych procesów. Typ wejścia i wyjścia procesów drugoplanu jest również inny. Zazwyczaj nie pobierają stdin. Jednak wyniki procesu mogą być wyświetlane jako stdout. Wyświetlanie danych wyjściowych procesów drugoplanu odbywa się równocześnie z danymi wyjściowymi innych procesów pierwszoplanowych. Dzięki temu możesz widzieć postęp lub wyniki procesu drugoplanu bez przerywania innych ważnych działań.

Ponieważ wykonywanie szerokiego zakresu zadań w Linux zależy od wiersza poleceń, procesy pierwszoplanowe mogą być uciążliwe, natomiast uruchamianie procesów w tle uwalnia terminal do pracy nad innymi zadaniami. Dlatego przeniesienie zadania pierwszoplanowego do tła jest rozsądnym rozwiązaniem. Aby wysłać proces do tła powinieneś najpierw zatrzymać go od wykonania na pierwszym planie. Zrobi się to poprzez naciśnięcie CTRL+Z. Następnie wpisując polecenie bg, zatrzymany proces będzie ponownie uruchamiany w tle. Polecenie fg odwróci proces i przeniesie go na pierwszy plan.

Stan procesu; Składnia, Polecenia i Interpretacja Wyników

Efektywne zarządzanie procesami w Linux wymaga zrozumienia stanu procesów, które można monitorować za pomocą polecenia ps aux. Zanim jednak zagłębimy się w szczegóły polecenia ps aux, poznajmy różne stany procesów. Chociaż istnieje wiele typów procesów i stanów procesów, poniżej znajduje się tabela najczęstszych z nich:

Status procesu opis
W trakcie wykonywania(R) Proces jest aktualnie uruchomiony i zużywa zasoby CPU.
Uśpienie Można przerwać (S) Proces czeka na określone dane wejściowe lub zdarzenie, aby wznowić działanie. Obecnie nie zużywa zasobów CPU. Gdy zasoby będą dostępne lub zostaną wysłane sygnały, proces wznawia pracę.
Nieprzerywalna (D) Podobnie jak proces w przerywalnym stanie uśpienia, proces w nieprzyrywalnym stanie uśpienia nie zużywa zasobów CPU. Jedyną różnicą jest to, że nie reaguje na sygnały i powraca do działania tylko wtedy, gdy zasoby będą dostępne.
Zatrzymane(T) Dane wejściowe użytkownika lub określone zdarzenie wstrzymało proces. Proces w stanie zatrzymanym nie zużywa żadnych zasobów CPU.
Martwy(X) Proces został zakończony i już nie istnieje.

Dobre zrozumienie tych stanów procesów jest kluczowym aspektem efektywnego zarządzania i rozwiązywania problemów w systemach Linux. Teraz omówmy składnię i polecenia umożliwiające uzyskanie stanu procesu w Linux, a także sposób interpretacji wyników.

Składnia i Polecenia do Uzyskania Stanu Procesu

Możesz uzyskać stan procesu w Linux, używając podstawowej składni polecenia ps:

ps [process name]

Istnieją również inne opcje używane z poleceniem ps:

do: Ta opcja wyświetla kompleksową listę wszystkich procesów uruchomionych w systemie. Zawiera informacje takie jak identyfikatory procesów (PID), identyfikatory procesów nadrzędnych (PPID), użycie CPU i pamięci oraz stany procesów. Wynik polecenia ps aux jest znacznie przejrzystszy, bardziej czytelny i zawiera o wiele więcej przydatnych informacji niż podstawowe polecenie ps.

ef: Ta opcja wyświetla pełny format listy procesów z dodatkowymi szczegółami, łącznie z hierarchią procesów w strukturze podobnej do drzewa.

l: Ta opcja zapewnia długi format listy, przedstawiając bardziej szczegółowe informacje o procesach.

Zrozumienie wyników

Po wykonaniu polecenia ps z żądanymi opcjami generuje wynik reprezentujący procesy aktualnie uruchomione w systemie. Wynik składa się z kolumn pokazujących różne atrybuty procesu, łącznie z identyfikatorem procesu (PID), identyfikatorem procesu nadrzędnego (PPID), użyciem CPU, użyciem pamięci, stanem procesu, typem terminala i nazwą polecenia.

Oto wyjaśnienie znaczenia każdej z tych kolumn:

PID: Ta kolumna pokazuje unikalny identyfikator procesu.

TTY: Ta kolumna pokazuje typ terminala, do którego zalogował się użytkownik.

CZAS: Ta kolumna wskazuje, ile CPU jest używane przez ten proces w minutach i sekundach.

KMD: Ta kolumna reprezentuje nazwę polecenia, które uruchomiło ten proces.

Analiza informacji dostarczonych przez polecenie ps daje ci głębszy wgląd w zachowanie maszyny Linux.

Zaawansowane Techniki ps do Zarządzania Procesami za Pomocą Polecenia ps

Poznajmy niektóre zaawansowane funkcje polecenia ps i sposób ich efektywnego wykorzystania:

1. Sortowanie Procesów

Polecenie ps aux można wykorzystać do sortowania ostatecznego wyniku na podstawie różnych kolumn. Na przykład możesz posortować procesy według identyfikatora procesu lub użycia CPU, aby wyświetlić je w żądanej kolejności.

Oto przykład sortowania procesów według identyfikatora procesu za pomocą ps aux:

ps aux –-sort pid

Polecenie head służy do wyświetlenia tylko pierwszych pięciu wierszy wyniku.

ps aux sortuj PID

2. Wizualizacja drzewa procesów

Aby wyraźnie zobaczyć relacje parent-child między procesami, możesz użyć polecenia ps z opcją forest.

ps -aux --forest

relacja nadrzędny-podrzędny procesów Linux

Aby zobaczyć relacje między procesami w strukturze drzewa, możesz użyć polecenia pstree. Polecenie to tworzy bardziej zrozumiałe wyjście i doskonale ilustruje hierarchię procesów. Aby go użyć, wpisz następujące polecenie:

pstree [pid or username]

Podając PID tej komendy, instruujesz ją, aby traktowała ten proces jako pierwsze ogniwo drzewa procesów.

3. Procesy filtrowania

Wyobraź sobie, że chcesz pracować z konkretną grupą procesów. Na przykład chcesz wylistować wszystkie procesy jednego użytkownika. Aby filtrować procesy na podstawie określonej charakterystyki, możesz użyć komendy ps. W tym przykładzie filtrujemy procesy podle nazwy użytkownika.

ps -u [username]

filtrowanie procesów Linux przy użyciu polecenia ps

Polecenie ps aux grep pozwala filtrować procesy na podstawie dowolnego wzorca lub słowa kluczowego, które podasz. Spójrz na przykład poniżej:

przykład polecenia ps aux grep

To polecenie wyświetla listę wszystkich procesów i przekazuje wynik poleceniu grep, które filtruje tę listę na podstawie identyfikatora procesu. Na zrzucie ekranu powyżej widać listę wszystkich procesów, które zawierają liczbę 15 w swoich informacjach.

Aby dowiedzieć się więcej na temat polecenia ps i jego możliwości, możesz przeczytać jego stronę podręcznika. Poniższy kod wyświetli ją:

man ps

Zarządzanie priorytetami zadań w Linux

Aby lepiej wyjaśnić, jak zarządzanie procesami działa w Linux, musimy omówić priorytety procesów i sposób ich zmiany. Wyobraź sobie sytuację, w której uruchamiasz kilka procesów, a CPU jest przeciążony zadaniami. Jeśli chcesz zarządzać zasobami tak, aby działały prawidłowo w tej sytuacji, musisz zmienić priorytet uruchomionych zadań. Każdy proces w Linux ma wartość priorytetu. Ta wartość pomaga kernelowi ustalać priorytety zadań. Wartość priorytetu waha się od -20 do 19, gdzie 19 to najmniej ważne zadanie, a -20 to najbardziej pilne. Proces o najwyższym priorytecie otrzymuje więcej czasu CPU w porównaniu z innymi procesami. Wartości priorytetu są często określane jako wartości "nice", gdzie niższe wartości nice wskazują wyższy priorytet.

Polecenia nice i renice umożliwiają efektywne zarządzanie zasobami systemowymi.

Zanim jednak przejdziemy do zmiany priorytetu procesów, sprawdzmy pierwszy przypadek użycia polecenia ps.

  • Wyświetlanie bieżącego priorytetu wszystkich procesów za pomocą polecenia ps:

To polecenie wyświetla listę wszystkich procesów wraz z ich identyfikatorami (PID), nazwami poleceń i bieżącym priorytetem (wartością nice):

 

ps -eo pid,cmd,nice

Sprawdzanie priorytetu wszystkich procesów za pomocą polecenia ps

  • Uruchamianie procesu z domyślnym wysokim priorytetem za pomocą polecenia nice:

Możesz uruchomić proces z wybranym priorytetem za pomocą tej komendy:

nice -n [priority] [command]

Zamień [priority] na żądaną wartość ujemną reprezentującą poziom priorytetu i [command] na polecenie, które chcesz wykonać.

I'm ready to translate English UI labels to Polish for Cloudzy. However, I don't see the text you'd like me to translate yet. Please provide the English text, and I'll translate it following all the rules you've outlined (keeping brand names, tech terms, abbreviations, and place names unchanged while using natural Polish phrasing).

uruchomienie procesu z domyślnym wysokim priorytetem

  • Zmiana priorytetu już uruchomionego polecenia:
renice -n [priority] -p [PID]

Zastąp identyfikator procesu (PID) procesem, którym chcesz manipulować, wartością [PID].

Jeśli chcesz mieć potężną maszynę Linux do wykonywania wszelkich zadań, Linux VPS to najlepsze rozwiązanie dla ciebie. Cloudzy oferuje różne plany Linux VPS z preinstalowaną wybraną dystrybucją. Dzięki wielu zaletom, takim jak wsparcie 24/7, 30-dniowa gwarancja zwrotu pieniędzy i gwarancja 99,95% dostępności, Cloudzy udało się utrzymać niskie ceny. Nasze plany Linux VPS zaczynają się już od 4,95 $/miesiąc.

Hosting Linux VPS

Postaw na ekonomiczny lub premium Linux VPS do hostowania strony internetowej lub zdalnego pulpitu, w najniższej dostępnej cenie. VPS Działa na Linux KVM dla większej wydajności i wykorzystuje wydajny sprzęt z pamięcią masową NVMe SSD dla większej szybkości.

Czytaj więcej

Wnioski

Podsumowując, opanowanie zarządzania procesami i kontroli systemu jest obowiązkowe dla administratorów systemów, entuzjastów Linux chcących się dokształcać oraz zwykłych użytkowników Linux. Poznanie możliwości i funkcjonalności polecenia ps może ułatwić naukę zarządzania procesami. Dlatego w tym artykule omówiliśmy ważne przypadki użycia polecenia ps i daliśmy czytelnikom wprowadzenie do procesów Linux.

Często zadawane pytania

Co to jest polecenie ps aux w Linux?

Polecenie ps aux Linux to powszechnie używane polecenie w Linux do uzyskiwania informacji o uruchomionych procesach. Może dostarczyć kompletną listę procesów w przyjaznym dla użytkownika formacie, w tym ich identyfikatory procesów (PID), CPU oraz użycie pamięci, stany wykonania i inne istotne szczegóły.

Jakie są dwa typy procesów w Linux?

Procesy pierwszoplanowe i procesy tła. Procesy pierwszoplanowe zajmują terminal podczas działania i nie pozwalają na inne wykonania. Procesy tła działają w tle i nie zajmują całego terminala.

Jak mogę wyświetlić listę procesów uruchomionych w moim systemie Linux?

Listę procesów uruchomionych w systemie Linux można uzyskać za pomocą poleceń takich jak ps, top lub htop. Na przykład polecenie Linux ps aux zawiera szczegółowe informacje o wszystkich uruchomionych procesach.

Udostępnij

Więcej z bloga

Czytaj dalej.

Okładka artykułu o najlepszych aplikacjach self-hosted do uruchomienia z Cosmos Cloud, z panelami aplikacji wokół pulpitu Cosmos.
Serwery i system operacyjny

Najlepsze aplikacje self-hosted do uruchomienia z Cosmos Cloud: pliki, multimedia, hasła, automatyzacja i nie tylko!

Maybe masz już skonfigurowany Cosmos Cloud i chcesz zobaczyć, jakie aplikacje dobrze z nim współpracują, a może jeszcze nie zdecydowałeś się na Cosmos i po prostu chcesz sprawdzić, jak wpasowuje się w twój przepływ pracy

Nick SrebrnyNick Srebrny Czytanie w 16 minut
Portainer vs Cosmos Cloud do zarządzania aplikacjami Docker: okładka z diagramem konfiguracji hybrydowej oraz blokami ops i access.
Serwery i system operacyjny

Portainer vs Cosmos Cloud: Które rozwiązanie lepiej sprawdzi się do zarządzania aplikacją Docker?

Jeśli znasz już Docker i szukasz wygodniejszego sposobu na obsługę rosnącego stosu aplikacji, oto krótka odpowiedź na pytanie Portainer vs Cosmos Cloud. Portainer to mocniejszy wybór do bezpośred

Nick SrebrnyNick Srebrny 14 minut czytania
Grafika porównawcza Cosmos Cloud vs CasaOS vs Umbrel pokazująca trzy ścieżki self-hostingu w ramach jednej abstrakcyjnej sieci chmurowej.
Serwery i system operacyjny

Cosmos Cloud vs CasaOS vs Umbrel: Która platforma self-hosted pasuje do Twojego środowiska?

Krótka odpowiedź: CasaOS to nadal najłatwiejszy punkt startowy, Umbrel ma najbardziej dopracowany i spójny interfejs, a Cosmos Cloud zaczyna mieć sens, gdy chcesz mieć większą kontrolę nad dome

Nick SrebrnyNick Srebrny 11 minut czytania

Gotowy do wdrożenia? Od 2,48 USD/miesiąc.

Niezależna chmura od 2008 roku. AMD EPYC, NVMe, 40 Gbps. Zwrot pieniędzy w ciągu 14 dni.