Ta strona wyjaśnia, jak zarządzać uruchomionymi procesami w systemie za pomocą Webmina.
Wprowadzenie do procesów
Każdy program, proces lub polecenie działające w systemie Linux jest procesem. W dowolnym momencie w systemie działają dziesiątki procesów, niektóre dla programów, z którymi współpracujesz graficznie, inne dla poleceń uruchomionych w wierszu polecenia powłoki, niektóre dla serwerów działających w tle, a inne wykonujące zadania systemowe. Za każdym razem, gdy wpiszesz polecenie, takie jak ls lub vi, w znaku zachęty powłoki, tworzony jest nowy proces, który kończy się, gdy tylko jego zadanie zostanie wykonane.
Każdy proces jest identyfikowany za pomocą unikalnego identyfikatora, znanego jako PID lub identyfikator procesu. Każdy jest własnością jednego użytkownika i jest członkiem wielu grup, które określają uprawnienia, jakie posiada proces. Każdy z nich ma priorytet (znany również jako fajny poziom), który kontroluje, ile czasu procesora proces może wykorzystać w obciążonym systemie. Prawie każdy proces ma rodzica, który jest procesem, który go rozpoczął i po którym dziedziczy prawa własności, priorytet i inne ustawienia.
Proces będzie działał dopóki nie zdecyduje się zakończyć, lub dopóki nie zostanie zabity przez sygnał z innego procesu.
Moduł Running Processes
Tego modułu można używać do przeglądania, zabijania, zmiany priorytetów i uruchamiania procesów w systemie. Kiedy wejdziesz do niego po raz pierwszy z kategorii System, strona główna wyświetli drzewo procesów, jak pokazano poniżej.
Moduł oferuje kilka różnych sposobów przeglądania wszystkich procesów w systemie, wybieranych za pomocą łączy Wyświetl u góry strony głównej. Są to:
PID W tym trybie wyświetlania każdy proces jest pokazany z wcięciem pod swoim rodzicem, tworząc drzewo wszystkich procesów uruchomionych w systemie. Na szczycie drzewa znajduje się polecenie init, które jest uruchamiane przez jądro podczas rozruchu i nie ma rodzica. Użytkownik W tym trybie procesy są grupowane według ich właścicieli. Może być przydatny w systemach z wieloma użytkownikami, aby na pierwszy rzut oka sprawdzić, co uruchamia każdy użytkownik. Pamięć W tym trybie procesy są uporządkowane według ilości używanej pamięci, a te, które używają najwięcej pamięci, są wyświetlane na górze strony. Użycie pamięci przez procesy nie zawsze jest wskaźnikiem ilości pamięci, którą faktycznie wykorzystuje, ponieważ procesy często współużytkują pamięć między sobą. Ponadto całkowita i wolna ilość pamięci rzeczywistej i wirtualnej w systemie jest wyświetlana nad listą procesów. Procesor W tym trybie wyświetlania procesy są porządkowane według bieżącego wykorzystania procesora, przy czym najcięższy użytkownik pojawia się jako pierwszy. Czasami polecenie Webmin, które generuje stronę, pojawia się u góry listy, ale można je bezpiecznie zignorować. Średnie obciążenia systemu zostaną wyświetlone u góry strony, aby dać wyobrażenie o tym, jak zajęty był system w ciągu ostatnich 1,5 i 10 minut. Średnia 0 oznacza brak aktywności, 1 oznacza, że procesor jest w pełni wykorzystany, a wartość powyżej 1 oznacza, że jest więcej procesów, które chcą uruchomić, niż ma na to czas procesora.
Opcje Wyszukaj i Uruchom służą odpowiednio do wyszukiwania procesów i uruchamiania nowych. Więcej informacji znajdziesz w poniższych sekcjach.
Wyświetlanie, zabijanie lub zmiana priorytetów procesu
Możesz zobaczyć wszystkie szczegóły każdego uruchomionego procesu, klikając jego wpis w kolumnie Identyfikator procesu na dowolnym ekranie na stronie głównej . Spowoduje to przejście do strony informacji o procesie pokazanej na tym zrzucie ekranu.
Strona wyświetla wszystkie dostępne informacje o procesie, w tym pełną linię poleceń, polecenie nadrzędne i wszelkie procesy podrzędne. Możesz po prostu przejść do strony informacyjnej dla rodzica, klikając jego polecenie, lub do strony dowolnego z procesów podrzędnych, klikając jego identyfikator procesu. Listę plików otwartych przez proces i połączeń sieciowych, z których aktualnie korzysta, można wyświetlić, klikając przycisk Pliki i połączenia.
Proces może być zatrzymywany przy użyciu sygnału TERM, klikając przycisk Zakończ proces. Ponieważ może to zostać zignorowane przez niektóre polecenia, przycisku Kill Process można użyć do wysłania sygnału KILL, jeśli zakończenie nie powiedzie się. Jeśli proces nie zostanie zawieszony w wywołaniu systemowym jądra, zabicie go jest gwarantowane.
Inne sygnały można wysyłać, wybierając typ sygnału obok przycisku Wyślij sygnał przed jego naciśnięciem. Niektóre z bardziej użytecznych sygnałów to:
HUP W przypadku wielu procesów serwerowych sygnał ten spowoduje, że ponownie odczytają swoje pliki konfiguracyjne. STOP Zawiesza proces do momentu odebrania sygnału CONT. CONT Wznawia proces, który został zawieszony sygnałem STOP.
Strony informacyjnej można również użyć do zmiany ładnego poziomu uruchomionego procesu, nadając mu wyższy lub niższy priorytet.Aby zmienić priorytet procesów, wybierz nowy poziom z listy * Poziom Nice *, a następnie kliknij przycisk Zmień. Niższe poziomy oznaczają wyższe priorytety, więc proces z ładnym poziomem 10 otrzyma więcej czasu procesora niż jeden z poziomem 5.
W systemie z wieloma użytkownikami długotrwałe procesy, które zajmują dużo czasu Czas procesora powinien mieć wyższy miły poziom, aby nie spowalniał procesów wchodzących w interakcję z użytkownikami. Alternatywnie możesz przyspieszyć proces kosztem innych, nadając mu niższy miły poziom. Należy zachować ostrożność przy ustawianiu bardzo niskiego poziomu (np. 20), ponieważ wszystkie inne procesy mogą stracić czas procesora, przez co system przestanie odpowiadać.
Wyszukiwanie procesów
Jeśli masz dużą liczbę procesów uruchomionych w systemie i chcesz znaleźć jeden lub więcej procesów do zabicia lub wyświetlenia, funkcja wyszukiwania modułu Running Process sprawia, że to proste. Aby znaleźć procesy, wykonaj następujące kroki:
- Na stronie głównej modułu kliknij łącze Wyszukaj tryb wyświetlania. Spowoduje to przejście do formularza wyszukiwania, jak pokazano na zrzucie ekranu poniżej.
- Formularz zawiera kilka różnych kryteriów wyszukiwania procesów, z których możesz wybrać jedno, klikając przycisk opcji obok niego. Kryteria to: Posiadane przez procesy należące do użytkownika, którego nazwę wprowadzasz jako do tej opcji zostaną znalezione. # * Dopasowywanie Znajduje procesy, których polecenie lub argumenty zawierają tekst wprowadzony obok tej opcji. Używanie więcej niż Znajduje procesy wykorzystujące więcej niż określony procent czasu procesora. Korzystanie z systemu plików Procesy, których bieżący katalog jest włączony zostanie znaleziony wybrany system plików lub będziesz mieć dostęp do dowolnego pliku na nim. Przydatne, jeśli nie możesz nie odmontowywać systemu plików, ponieważ jest zajęty. Korzystanie z pliku Znajduje procesy, w których wprowadzony plik jest otwarty do odczytu lub zapisu. Jeśli wprowadzisz katalog, zostanie znaleziony każdy proces, dla którego jest to katalog bieżący. Korzystanie z portu Znajduje procesy, które wysyłają, odbierają lub nasłuchują ruchu sieciowego na wprowadzonym porcie przy użyciu wybranego protokołu. Przydatne, jeśli znasz numer portu, na którym nasłuchuje serwer, i chcesz znaleźć proces serwera. Korzystanie z adresu Znajduje procesy, które mają otwarte połączenie sieciowe z wprowadzonym adresem lub nasłuchują pod tym adresem, jeśli jest to interfejs w systemie.
- Aby odfiltrować procesy wyszukiwania Webmina z wyników, wybierz opcję Ignoruj procesy wyszukiwania w wynikach. Może to być przydatne podczas wyszukiwania według użycia procesora, ponieważ procesy Webmin zużywają dużo czasu procesora.
- Po wybraniu kryteriów wyszukiwania kliknij przycisk Wyszukaj. Wszelkie pasujące procesy zostaną wyświetlone poniżej formularza.
- Jeśli chcesz zobaczyć dodatkowe informacje o procesie, zmienić jego priorytet lub wysłać samodzielnie sygnał, kliknij jego identyfikator procesu w wynikach.
- Aby zabić wszystkie pasujące procesy, kliknij przycisk Zakończ procesy lub Zabij procesy. Możesz również wysłać dowolny sygnał do wszystkich procesów, wybierając go z listy obok przycisku * Wyślij sygnał *. Zostanie wyświetlona strona z listą każdego identyfikatora procesu i tego, czy został on pomyślnie zasygnalizowany lub zabity.
Uruchamianie procesu
Moduł może być również używany do uruchamiania prostych poleceń, zarówno na pierwszym planie, aby ich dane wyjściowe były wyświetlane, jak i w tle jako demony. Może to być przydatne, jeśli chcesz po prostu uruchomić polecenie bez konieczności logowania się przez telnet lub SSH (lub jeśli zapora uniemożliwia logowanie przez telnet lub SSH). Oto kroki, które należy wykonać:
- Na stronie głównej modułu kliknij łącze Uruchom obok opcji trybu wyświetlania. Spowoduje to przejście do formularza do rozpoczęcia nowego procesu.
- Wpisz polecenie, które chcesz uruchomić w polu * Polecenie do uruchomienia *. Operatory powłoki i znaki specjalne, takie jak;, & lt, > i & & może być używany.
- Jeśli wykonanie polecenia zajmie dużo czasu, możesz ustawić opcję Tryb uruchamiania na Uruchom w tle, aby Webmin automatycznie umieścił je w tle. Jeśli jednak chcesz zobaczyć dane wyjściowe polecenia, pozostaw opcję ustawioną na Czekaj do zakończenia.
- Wprowadź dowolne dane wejściowe, które chcesz wprowadzić do polecenia w polu * Wejście do polecenia *.
- Kliknij przycisk Uruchom, aby go uruchomić. Jeśli wybrano opcję Poczekaj na zakończenie, zostaną wyświetlone dane wyjściowe polecenia.
Uruchom polecenie
Opcje kontroli dostępu do modułu
Domyślnie każdy użytkownik Webmina mający dostęp do tego modułu może zarządzać wszystkimi uruchomionymi procesami w systemie, jakby był zalogowany jako root. Jednak korzystając z modułu Users and Groups, możesz ograniczyć dostęp użytkownika tak, aby mógł on tylko zabijać lub zmieniać procesy należące do określonego użytkownika Uniksa.Możliwe jest również ograniczenie użytkownika do trybu tylko do odczytu, pozwalając mu widzieć tylko procesy, nie zmieniając ich w żaden sposób ani nie uruchamiając nowych.
Najpierw powinieneś przeczytać rozdział 52, aby dowiedzieć się więcej o kontroli dostępu do modułów i o tym, jak nadać użytkownikowi dostęp do modułu Uruchomione procesy. Gdy to zrobisz, aby edytować dostęp użytkownika Webmina do tego modułu, wykonaj następujące czynności:
- W module Użytkownicy Webmina kliknij Uruchomione procesy obok nazwy użytkownika lub grupę, którą chcesz ograniczyć.
- Zmień pole Czy można edytować konfigurację modułu? na Nie.
- Aby dać użytkownikowi Webmin dostęp tylko do tych procesów, których właścicielem jest określony użytkownik systemu UNIX, wprowadź nazwę użytkownika w polu * Zarządzaj procesami jako użytkownik *. Jeśli użytkownicy Unix i Webmin mają tę samą nazwę, możesz zamiast tego wybrać Bieżący użytkownik Webmina. Może to być przydatne podczas konfigurowania kontroli dostępu do modułu dla grupy, członek, aby mógł zarządzać tylko swoimi własnymi procesami.
- Aby przełączyć użytkownika w tryb tylko do odczytu, ustaw pola * Can kill and reine process? * and Can run commands? * na wartość * No. jest to zrobione, tak naprawdę nie ma znaczenia, jaką nazwę użytkownika wprowadzisz w kroku 7, ponieważ nie można przeprowadzić zarządzania procesem.
- Kliknij przycisk Zapisz, aby aktywować zmiany.
Aby ograniczyć procesy, którymi może zarządzać użytkownik Webmina, kod modułu po prostu przełącza się tak, aby działał jako użytkownik Uniksa określony w kroku 4. Ponieważ użytkownik Uniksa nie może zabijać ani zmieniać priorytetów żadnego procesu którego nie jest właścicielem, zmiana użytkownika w ten sposób powoduje, że system operacyjny automatycznie wymusza kontrolę dostępu do procesów dla Webmina.
Inne systemy operacyjne
Ponieważ procesy istnieją we wszystkich wersjach Uniksa z prawie identyczne atrybuty, ten moduł wygląda prawie dokładnie tak samo we wszystkich obsługiwanych systemach operacyjnych.
Podczas przeglądania szczegółowych informacji o procesie w innych systemach operacyjnych mogą być dostępne różne informacje. Zakres przyjemnych poziomów może być również inny, ale niższe poziomy nadal oznaczają wyższy priorytet i odwrotnie.
Podczas wyszukiwania procesu opcje Korzystanie z systemu plików, Korzystanie z pliku lub Kryteria użycia portów mogą być niedostępne. Te opcje zależą od poleceń fuser i lsof, które nie są dostępne lub zainstalowane domyślnie we wszystkich systemach.