W czasie, gdy w systemie zostaje uruchomiony program lub wydane zostanie polecenie tworzony zostaje dla niego proces. Proces taki posiada unikalny identyfikator (PID) by można było go zlokalizować. Procesy systemu są krytyczną kwestią z punktu widzenia utrzymania środowiska i realizowania usług dla użytkowników i klientów systemu. Zarządzanie procesami pomoże w utrzymaniu stabilnego działania środowiska oraz w momencie gdy działanie stanie się niestabilne. Polecenia mające zastosowanie w zarządzaniu procesami w systemie:
- ps - Informacje na temat uruchomionych procesów
- kill - Zakończenie działania procesu (zabicie go)
- pgrep - Wyszukanie procesu po numerze PID
- pidof - Wyświetli wszystkie procesy danego serwisu lub polecenia
- top - Monitorowanie zasobów systemowych
- renice - Nadanie ważności dla procesów
Na początek zobaczmy jakie procesy uruchomione ma użytkownik root
# ps
PID TTY TIME CMD
4474 pts/3 00:00:00 bash
4506 pts/3 00:00:00 ps
Polecenie ps posiada dużo opcji służących do formatowania i uzyskiwania różnych wyników dotyczących procesów i aby zobaczyć dodatkowe bardziej szczegółowe informacje możemy użyć przełącznik "-u".
# ps u
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 2387 0.0 0.1 1660 424 tty1 Ss+ 07:30 0:00 /sbin/mingetty tty1
root 2388 0.0 0.1 1660 420 tty2 Ss+ 07:30 0:00 /sbin/mingetty tty2
root 2389 0.0 0.1 1660 420 tty3 Ss+ 07:30 0:00 /sbin/mingetty tty3
root 2390 0.0 0.1 1660 420 tty4 Ss+ 07:30 0:00 /sbin/mingetty tty4
root 2391 0.0 0.1 1660 448 tty5 Ss+ 07:30 0:00 /sbin/mingetty tty5
root 2392 0.0 0.1 1660 420 tty6 Ss+ 07:30 0:00 /sbin/mingetty tty6
Teraz poza nr PID widać również zużycie pamięci i procesora. Dobrze jest również stosować kombinacje przełączników i wykorzystać "grep" by uzyskiwać odfiltrowane informacje na temat tego co akurat w danym momencie jest interesujące.
# ps aux | grep ssh
root 4286 0.0 0.1 62616 1216 ? Ss Sep23 0:00 /usr/sbin/sshd
root 15872 0.0 0.3 90116 3248 ? Ss 10:06 0:00 sshd: user01 [priv]
user01 15874 0.0 0.1 90116 1740 ? S 10:06 0:00 sshd: user01@pts/0
user01 15921 0.0 0.0 61176 728 pts/0 R+ 10:14 0:00 grep ssh
Pełne możliwości polecenie ps można poznać po wpisaniu :
$ ps - help
Znajomość polecenia ps i manipulacji przełącznikami umożliwi rozwiązanie wielu problemow, jakie napotkasz na egzaminie RedHat i jest to wielka pomoc, jaka przydaje się w prawdziwym administrowaniu systemem.
Co dzieje się jeżeli jeden z procesów działających w systemie przestanie podlegać kontroli? W taki wypadku można zastosować polecenie "kill", które zakończy jego działanie. Polecenie "kill" stosujemy zawsze w przypadku, gdy proces danej usługi nie odpowiada i wiadomo już, że należy taką usługę zrestartować.
Składnia polecenia kill : # kill PID
Jeżeli chcesz zatrzymać usługę SSH ponieważ nie działa prawidłowo, należy wyszukać jej numer PID i następnie zakończyć jej działanie poleceniem "kill". Jeżeli zobaczymy że PID dla SSH to 4125 poleceniem usuwającym proces jest :
# kill 4125
Czasami nawet polecenie "kill" może nie poradzić sobie z wyłączeniem procesu i w takim wypadku można zastosować przełącznik -9 - jest to opcja nadająca wyższy priorytet dla systemu.
# kill -9 4125
Co zrobić jeżeli nie znamy numeru PID procesu jaki chcemy wyłączyć? Wyszukanie PID procesu można wykonać stosując polecenie "ps" z dodatkowymi przełącznikami oraz filtracją "grep" jeżeli to nie wystarcza możemy spróbować użyć dwóch innych poleceń : pidof oraz pgrep.
Zobaczmy działanie pidof, gdzie jako hasła wyszukiwania używamy nazwy usługi lub demona. I tak chcąc znaleźć proces usługi SSH robimy :
# pidof sshd
15874 15872 4286
Jeżeli chcemy mieć wynik w łatwiejszym do odczytu formatowaniu dobrze sprawdzi się:
# pgrep sshd
4286
15872
15874
Dobrze jest wiedzieć jak znaleźć dany proces, który chcemy wyłączyć i jak wyszukać go w gąszczu innych procesów, ale co jeżeli musimy wiedzieć więcej na temat procesu np.: ile zużywa pamięci i mocy procesora? Poznajmy polecenie "top". Polecenie to daje szczegółowe informacje o procesach w tym o zużyciu zasobów dla danego procesu.
W celu zakończenia widoku TOP wciskamy klawisz "q".
By osiągnąć większy komfort pracy w systemie możliwe jest skonfigurowanie ważności procesów przez nadanie im priorytetów. Do tego posłuży polecenie "renice" nadające priorytet dla CPU.
Składnia polecenie renice: # renice <prirytet> [opcje]
Opcje polecenia renice:
- -p PID - Zmiana priorytetu dla procesu o danym numerze PID
- -u user - Zmiana priorytetu dla procesów danego użytkownika
Wartości priorytetów zawierają się w przedziale od -20 do 20. Tylko procesy użytkownika root posiadają priorytet równy 0. By zmienić priorytet wybranemu procesowi wykonujemy :
# renice -2 3874
To polecenie zmieni priorytet usługi o numerze PID 3874 na lepszy. Znajomość zagadnienia procesów pozwoli stać Ci się lepszym administratorem, a umiejętności te pozwolą szybciej znaleźć, zdiagnozować i naprawić pojawiające się problemy.
Komentarze
Prześlij komentarz