50% zniżki wszystkie plany, ograniczony czas. Rozpoczęcie o godz $2.48/mo
Pozostało 10 minut
Serwery i system operacyjny

Opanowanie zarządzania procesami – polecenie Linux ps aux

Ada Lovegood By Ada Lovegood 10 minut czytania Zaktualizowano 11 lipca 2024 r
polecenie ps aux w systemie Linux

Czy masz otwartych co najmniej pięć innych zakładek w przeglądarce i próbujesz znaleźć rozwiązanie problemu z Linuksem, na który się natknąłeś?
To zachowanie nie jest specyficzne dla Ciebie ani ogólnie dla ludzi. Maszyny też są wielozadaniowe. I tak jak Ty, Linux jest również wielozadaniowy i wykonuje kilka procesów jednocześnie. Niezależnie od tego, czy jesteś programistą używającym Linuksa zawodowo, czy zwykłym użytkownikiem pracującym z Linuksem na co dzień, powinieneś być w stanie zrozumieć te równoległe procesy, aby zachować pełną kontrolę nad swoim systemem. Zarządzanie procesami i kontrola systemu to istotne aspekty działania systemu Linux.

Aby sprawnie zarządzać procesami działającymi w systemie, widzieć, co dzieje się w czasie rzeczywistym, mieć ogólne pojęcie o wszystkich procesach zachodzących w tle i kontrolować zasoby systemu, potrzebna jest wiedza techniczna z zakresu zarządzania procesami. Polecenie ps aux to potężne polecenie, które odgrywa kluczową rolę w zarządzaniu procesami i kontroli systemu. W tym poście dowiemy się więcej o poleceniu ps aux i jego przypadkach użycia. Omówimy także podstawy działania procesów Linuksa.

Zrozumienie zarządzania procesami w systemie Linux

Podczas pracy z Linuksem większość naszych interakcji z systemem odbywa się w formie poleceń. W systemie Linux proces polega na wykonaniu polecenia. Zarządzanie procesami w systemie Linux polega na manipulowaniu procesami uruchomionymi przez polecenie. Można zakończyć proces, rozpocząć proces lub wznowić procesy, które zostały zakończone. Można także manipulować poleceniami, które są w toku.

Istnieją dwa typy procesów w systemie Linux:

  • Procesy pierwszoplanowe
  • Procesy w tle

Procesy na pierwszym planie Linuksa

Proces pierwszoplanowy to proces, który jest aktywnie wykonywany i zazwyczaj wymaga stałej interakcji z użytkownikiem w czasie rzeczywistym. Kiedy proces na pierwszym planie jest aktywny, wykonywanie innych procesów jest wstrzymywane. Nie możesz więc uruchamiać żadnych innych poleceń. Proces pierwszoplanowy otrzymuje dane wejściowe z klawiatury jako standardowe wejście lub standardowe wejście. Aby zapobiec dalszemu zamieszaniu, stdin i stdout są strumieniami danych systemu Linux, podobnie jak stderr. Zasadniczo jest to sposób, w jaki użytkownik wchodzi w interakcję z procesem i dostarcza do niego dane. Istnieje standardowe wyjście lub standardowe wyjście, które jest generowane przez proces w oparciu o jego funkcjonalność i dane wejściowe. Procesy na pierwszym planie są domyślnym trybem wykonywania w systemie Linux.

Procesy w tle Linuksa

Procesy w tle są dokładnym przeciwieństwem procesów na pierwszym planie, ponieważ nie wymagają interakcji użytkownika i nie zajmują wyłącznie całej przestrzeni terminala, umożliwiając wykonanie innych procesów. Rodzaj danych wejściowych i wyjściowych procesów działających w tle jest również inny. Zwykle nie przyjmują stdin. Jednakże wyniki procesu mogą być wyświetlane jako standardowe wyjście. Wyświetlanie wyników procesów działających w tle odbywa się jednocześnie z wynikami innych procesów pierwszego planu. Dzięki temu możesz zobaczyć postęp lub wyniki procesu w tle bez przerywania innych ważnych działań.

Ponieważ wykonywanie szerokiego zakresu zadań w systemie Linux zależy od wiersza poleceń, procesy na pierwszym planie mogą być kłopotliwe, podczas gdy uruchamianie procesów w tle uwalnia terminal od pracy nad innymi zadaniami. Dlatego rozsądne jest umieszczenie zadania na pierwszym planie w tle. W celu wysłać proces w tle powinieneś najpierw uniemożliwić jego wykonanie na pierwszym planie. Można to zrobić po prostu naciskając klawisze CTRL+Z. Następnie po wpisaniu polecenia bg zakończony proces zostanie uruchomiony ponownie w tle. Komenda fg odwróci proces i przeniesie go na pierwszy plan.

Stan procesu; Składnia, polecenia i interpretacja wyników

Efektywne zarządzanie procesami w systemie Linux wymaga zrozumienia stanu procesów, który można monitorować za pomocą polecenia ps aux. Zanim jednak zagłębimy się w polecenie ps aux, poznajmy różne statusy procesów. Chociaż istnieje kilka typów procesów i statusów procesów, oto tabela najczęstszych:

Stan procesu opis
Bieganie(R) Proces jest aktualnie uruchomiony i zużywa zasoby procesora.
Spanie Przerywalny (S) Proces oczekuje na określone wejście lub zdarzenie, aby ponownie rozpocząć działanie. Obecnie nie wykorzystuje zasobów procesora. Kiedy zasoby zostaną udostępnione lub otrzymane zostaną sygnały, proces rozpoczyna się od nowa.
Nieprzerwany (D) Podobnie jak proces znajdujący się w stanie uśpienia nieprzerywalnego, proces uśpienia nieprzerywalnego nie wykorzystuje zasobów procesora. Jedyną różnicą jest to, że nie reaguje na sygnały, wraca do życia dopiero, gdy dostępne są zasoby.
Zatrzymany(T) Dane wejściowe użytkownika lub określone zdarzenie wstrzymały proces. Proces w stanie zatrzymanym nie wykorzystuje żadnych zasobów procesora.
Martwy(X) Proces został zakończony i już nie istnieje.

Dobre zrozumienie tych statusów procesów jest kluczowym aspektem skutecznego zarządzania systemami Linux i rozwiązywania problemów. Omówmy teraz składnię i polecenia umożliwiające uzyskanie statusu procesu w systemie Linux, a także sposób interpretacji danych wyjściowych.

Składnia i polecenia uzyskiwania statusu procesu

Możesz uzyskać status procesu w systemie Linux za pomocą podstawowej składni polecenia ps:

ps [process name]

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

pomoc: Ta opcja wyświetla pełną listę wszystkich procesów uruchomionych w systemie. Dostarcza informacji, takich jak identyfikatory procesów (PID), identyfikatory procesów nadrzędnych (PPID), wykorzystanie procesora i pamięci oraz statusy procesów. Dane wyjściowe polecenia ps aux są znacznie schludniejsze, bardziej czytelne i zawierają o wiele więcej przydatnych informacji niż podstawowe polecenie ps.

efekt: Ta opcja wyświetla listę procesów w pełnym formacie z dodatkowymi szczegółami, w tym hierarchią procesów w postaci struktury drzewiastej.

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

Zrozumienie wyników

Po wykonaniu polecenia ps z żądanymi opcjami generuje ono dane wyjściowe reprezentujące procesy aktualnie uruchomione w systemie. Dane wyjściowe składają się z kolumn, które pokazują różne atrybuty procesu, w tym identyfikator procesu (PID), identyfikator procesu nadrzędnego (PPID), użycie procesora, użycie pamięci, status procesu, typ 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 procesora jest wykorzystywane przez ten proces w minutach i sekundach.

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

Analiza informacji dostarczonych przez polecenie ps pozwala uzyskać głębszy wgląd w zachowanie komputera z systemem Linux.

Zaawansowane techniki ps do zarządzania procesami za pomocą polecenia ps

Przyjrzyjmy się niektórym zaawansowanym funkcjom polecenia ps i sposobom ich efektywnego wykorzystania:

1. Sortowanie procesowe

Komendy ps aux można użyć do sortowania końcowego wyniku na podstawie różnych kolumn. Na przykład możesz sortować procesy według identyfikatora procesu lub użycia procesora, aby wyświetlić je w żądanej kolejności.

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

ps aux –-sort pid

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

ps aux sortuj pid

2. Wizualizacja drzewa procesów

Jeśli chcesz wyraźnie zobaczyć relację procesów nadrzędnych i podrzędnych, możesz użyć polecenia ps z opcją lasu.

ps -aux --forest

relacja rodzic-dziecko procesów Linuksa

Aby zobaczyć relacje między procesami w formie drzewa, możesz także użyć polecenia pstree. To polecenie utworzy bardziej zrozumiałe dane wyjściowe i doskonale ilustruje hierarchię między procesami. Aby użyć tego polecenia, wpisz następujące polecenie:

pstree [pid or username]

Nadając temu poleceniu PID, nakazujesz mu uważać ten proces za katalog główny drzewa.

3. Procesy filtrujące

Wyobraź sobie, że chcesz pracować z określoną grupą procesów; na przykład chcesz wyświetlić listę wszystkich procesów jednego z użytkowników. Filtrowanie procesów na podstawie cechy można wykonać za pomocą polecenia ps. W tym przykładzie przefiltrowaliśmy procesy na podstawie nazwy użytkownika.

ps -u [username]

filtrowanie procesów Linuksa za pomocą polecenia ps

Komenda ps aux grep może filtrować procesy na podstawie dowolnego wzorca lub słowa kluczowego podanego w poleceniu. Jako przykład spójrz na poniższy kod:

Przykład polecenia ps aux grep

To polecenie najpierw wyświetla listę wszystkich procesów i przekazuje dane wyjściowe do polecenia grep w celu filtrowania tej długiej listy na podstawie identyfikatora procesu. Na powyższym obrazku możesz zobaczyć listę wszystkich procesów, które mają w swoich informacjach liczbę 15.

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

man ps

Zarządzanie priorytetami zadań w systemie Linux

Aby lepiej wyjaśnić, jak faktycznie działa zarządzanie procesami w systemie Linux, powinniśmy również omówić priorytety procesów i sposoby ich zmiany. Wyobraź sobie sytuację, w której uruchamiasz kilka procesów, a procesor jest przeciążony zadaniami. Jeśli chcesz tak zarządzać swoimi zasobami, aby w tej sytuacji działały poprawnie, musisz zmienić priorytet uruchomionych zadań. Każdy proces w Linuksie ma wartość priorytetu. Ta wartość pomaga jądru ustalać priorytety zadań. Numer priorytetu waha się od -20 do 19, gdzie 19 oznacza zadanie najmniej ważne, a -20 najpilniejsze. Proces o najwyższym priorytecie otrzymuje więcej czasu procesora w porównaniu do innych procesów. Wartości priorytetów są często określane jako wartości „ładne”, przy czym niższe wartości ładne mają wyższy priorytet.

Do efektywnego przydzielania zasobów systemowych można używać poleceń nice i renice.

Zanim jednak zmienimy priorytet procesów, przyjrzyjmy się pierwszemu przypadkowi użycia polecenia ps.

  • Wyświetlanie aktualnego priorytetu wszystkich procesów za pomocą polecenia ps:

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

 

ps -eo pid,cmd,nice

Uzyskiwanie priorytetu wszystkich procesów za pomocą polecenia ps

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

Możesz rozpocząć proces z preferowanym priorytetem za pomocą tego polecenia:

nice -n [priority] [command]

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

Oto przykład:

rozpoczęcie procesu z domyślnym wysokim priorytetem

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

Zamień identyfikator procesu, którym chcesz manipulować, na [PID].

Jeśli chcesz mieć potężną maszynę z systemem Linux do wykonywania wszelkiego rodzaju zadań, a Serwer VPS z Linuksem jest dla Ciebie najlepszym rozwiązaniem. Cloudzy oferuje różne plany Linux VPS z preinstalowaną preferowaną dystrybucją. Dzięki wielu korzystnym funkcjom, takim jak wsparcie 24/7, 30-dniowa polityka zwrotu pieniędzy i gwarancja dostępności na poziomie 99,95%, Cloudzy udało się utrzymać niskie ceny. Nasze ceny Linux VPS zaczynają się od zaledwie 4,95 USD miesięcznie.

Hosting VPS pod Linuksem

Zdobądź ekonomiczny lub premium Linux VPS do hostowania swojej witryny internetowej lub zdalnego pulpitu, w najniższej cenie. VPS Działa na platformie Linux KVM w celu zwiększenia wydajności i działa na wydajnym sprzęcie z pamięcią masową SSD NVMe w celu zwiększenia szybkości.

Przeczytaj więcej

Wniosek

Podsumowując, opanowanie zarządzania procesami i kontroli systemu jest koniecznością dla administratorów systemów, entuzjastów Linuksa, którzy chcą dowiedzieć się więcej, i zwykłych użytkowników Linuksa. Poznanie możliwości i funkcjonalności polecenia ps może ułatwić Ci naukę zarządzania procesami. Dlatego w tym artykule omówiono ważne przypadki użycia polecenia ps, a także przedstawiono czytelnikom wprowadzenie do procesów systemu Linux.

Często zadawane pytania

Jakie jest polecenie ps aux w systemie Linux?

Polecenie ps aux Linux jest powszechnie używanym poleceniem w systemie Linux służącym do uzyskiwania informacji o uruchomionych procesach. Może zapewnić obszerną listę procesów w przyjaznym dla użytkownika formacie, w tym ich identyfikatory procesów (PID), wykorzystanie procesora i pamięci, stany wykonania i inne istotne szczegóły.

Jakie są dwa typy procesów w systemie Linux?

Procesy na pierwszym planie i procesy w tle. Procesy na pierwszym planie zajmują terminal podczas działania i nie pozwalają na inne wykonania. Procesy w tle 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 wyświetlić za pomocą poleceń takich jak ps, top lub htop. Na przykład polecenie ps aux w systemie Linux udostępnia szczegółowe informacje o wszystkich uruchomionych procesach.

Udział

Więcej z bloga

Czytaj dalej.

Najlepsze aplikacje hostowane samodzielnie, które można uruchomić w chmurze Cosmos. Obraz okładki z panelami aplikacji wokół pulpitu nawigacyjnego Cosmos.
Serwery i system operacyjny

Najlepsze aplikacje hostowane samodzielnie, które można uruchomić w chmurze Cosmos: pliki, multimedia, hasła, automatyzacja i wiele więcej!

Być może skonfigurowałeś Cosmos Cloud i teraz chcesz zobaczyć, jakie aplikacje dobrze z nią pasują, a może nawet jeszcze nie zdecydowałeś się na Cosmos i po prostu chcesz zobaczyć, jak dobrze pasuje do Twojej pracy.

Nicka SilveraNicka Silvera 16 minut czytania
Portainer vs Cosmos Cloud do zarządzania aplikacjami Docker z hybrydowym diagramem konfiguracji i neonowymi operacjami a blokami dostępu.
Serwery i system operacyjny

Portainer vs Cosmos Cloud: najlepsze dopasowanie do zarządzania aplikacjami Docker

Jeśli znasz już Dockera i chcesz po prostu czystszego sposobu uruchamiania rosnącego stosu aplikacji, oto krótka odpowiedź na pytanie Portainer vs Cosmos Cloud. Portainer to mocniejszy wybór w przypadku reżyserii

Nicka SilveraNicka Silvera 14 minut czytania
Grafika przedstawiająca trzy hostowane ścieżki w jednym abstrakcyjnym świecie sieci w chmurze.
Serwery i system operacyjny

Cosmos Cloud vs CasaOS vs Umbrel: która platforma samoobsługowa pasuje do Twojej konfiguracji?

Krótka odpowiedź jest taka, że ​​CasaOS jest nadal najłatwiejszym miejscem na rozpoczęcie, Umbrel ma najczystszy, starannie wyselekcjonowany styl, a Cosmos Cloud ma więcej sensu, gdy chcesz mieć ściślejszą kontrolę nad domeną

Nicka SilveraNicka Silvera 11 minut czytania

Gotowy do wdrożenia? Od 2,48 USD/mies.

Niezależna chmura, od 2008. AMD EPYC, NVMe, 40 Gbps. 14-dniowy zwrot pieniędzy.