W systemie Linux do monitorowania w czasie rzeczywistym uruchomionych procesów służy polecenie
A. proc
B. ps
C. sed
D. sysinfo
Pytanie z egzaminu CKE, wrzesień 2014 (arkusz E.12-X-14.08).
Polecenie ps jest tutaj właściwym wyborem, bo służy w Linuksie do wyświetlania informacji o aktualnie uruchomionych procesach. W praktyce administrator bardzo często używa go do szybkiego sprawdzenia, co działa w systemie, jaki proces ma numer PID, kto go uruchomił, ile czasu procesora zużył i z jakiego terminala pochodzi. Typowe przykłady to ps aux, ps -ef albo ps -u nazwa_użytkownika. Na tej podstawie można potem użyć np. kill PID, renice albo przeanalizować proces podejrzany o zbyt duże obciążenie. Warto jednak zapamiętać mały niuans: samo ps pokazuje migawkę stanu procesów, a do ciągłego odświeżania w czasie rzeczywistym częściej używa się top, htop albo watch ps aux. Mimo tego, spośród podanych odpowiedzi ps jest jedynym sensownym poleceniem związanym z monitorowaniem procesów. Z mojego doświadczenia to jedno z tych poleceń, które trzeba mieć w palcach, bo przy diagnostyce serwera Linux używa się go naprawdę często.
W tym pytaniu łatwo pomylić narzędzia systemowe, bo kilka nazw brzmi technicznie i może kojarzyć się z administracją Linuksem. Sed nie służy jednak do monitorowania procesów. To edytor strumieniowy, używany głównie do przetwarzania tekstu, zamiany fragmentów plików, filtrowania wyników poleceń i prostych automatyzacji w skryptach powłoki. Można nim obrabiać wynik polecenia ps, na przykład wyciąć wybrane kolumny albo zmienić format tekstu, ale sed sam z siebie nie pokazuje listy procesów ani nie sprawdza ich stanu. Proc też bywa mylące, bo w Linuksie istnieje system plików /proc, który zawiera mnóstwo informacji o jądrze i procesach. Katalogi takie jak /proc/1234 opisują konkretne procesy, ale proc nie jest standardowym poleceniem do ich monitorowania. Trzeba odróżniać źródło danych systemowych od narzędzia, które te dane prezentuje. Sysinfo również nie jest typowym poleceniem administracyjnym do obserwowania procesów. Nazwa może sugerować informacje o systemie, ale w standardowej pracy terminalowej używa się raczej uname, uptime, free, vmstat, top albo właśnie ps. Najczęstszy błąd myślowy polega tutaj na wybieraniu nazwy, która brzmi ogólnie systemowo, zamiast skojarzyć konkretne zadanie z konkretnym narzędziem. Do listowania procesów w Linuksie podstawą jest ps, a przy ciągłym podglądzie warto znać też top i htop, bo to jest dobra praktyka w diagnostyce usług i obciążenia systemu.