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.

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

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]

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:

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

- 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:

- 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.
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ęcejWniosek
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.