Obsługa komendy "ps" - Proces Status
Komenda ps (process status) jest jednym z fundamentalnych narzędzi administracyjnych do monitorowania procesów w systemach Unix/Linux. Pozwala na identyfikację, śledzenie i diagnostykę działających aplikacji. W pracy z serwerami (szczególnie przy Proxmox, FreeBSD czy administracji gra serwerów MT2) niezbędna jest umiejętność interpretacji wyniku ps.
Podstawowe użycie ps
ps
Wyświetla procesy bieżącego użytkownika w aktualnej sesji terminalowej. Bardzo podstawowe, rzadko wystarczające dla administratora.
Przeglądanie wszystkich procesów z pełnymi informacjami
ps aux
To najczęstsze polecenie dla administratorów. Wyświetla wszystkie procesy w systemie (a – wszystkie, u – szczegółowy format, x – procesy bez terminala). Kolumny oznaczają: USER (właściciel), PID (ID procesu), %CPU (procent CPU), %MEM (procent pamięci), VSZ (rozmiar wirtualny), RSS (resident set size – fizyczna pamięć), TTY (terminal), STAT (status), START (czas startu), TIME (czas CPU), COMMAND (polecenie).
Alternatywny format wyświetlania
ps -ef
Inny sposób na wyświetlenie wszystkich procesów, bardziej zbliżony do formatu Linuksa (zamiast BSD-owego aux). PPID (ID procesu nadrzędnego) jest tu bardziej widoczne.
Filtrowanie procesów konkretnego użytkownika
ps -u 'nazwa_usera'
Pokazuje tylko procesy należące do użytkownika admin. Przydatne gdy szukamy co robi konkretny użytkownik.
ps -u root,www-data
Procesy należące do wielu użytkowników naraz.
Wyszukiwanie konkretnych procesów
ps aux | grep 'nazwa procesu'
Wyszukuje procesy związane z danym procesem
ps aux | grep -v grep
![]() |
![]() |
Eliminuje z wyniku samo polecenie grep (często pojawia się w wynikach).
pgrep -lf 'nazwa_procesu'
Szuka procesu po pełnej nazwie polecenia (bardziej precyzyjne niż grep).
Sortowanie procesów
ps aux --sort=-%cpu | head -20
Wyświetla 20 procesów zużywających najwięcej CPU, posortowanych malejąco.
ps aux --sort=-%mem | head -20
Wyświetla 20 procesów zużywających najwięcej pamięci RAM.
ps aux --sort=-vsz
Sortuje po wirtualnym rozmiarze pamięci.
ps aux | wc -l
Liczy całkowitą liczbę procesów w systemie.
Monitorowanie procesów hiearchy – relacje między procesami
ps auxf
Wyświetla procesy w formie drzewa, pokazując które procesy są "dziećmi" innych procesów.
pstree -p user
Pokazuje drzewo procesów danego użytkownika z PID.
Monitorowanie procesów w czasie – status i sygnały
ps aux | grep -E 'S|Ss|R|T'
Statusy procesów: S (sleeping – uśpiony), Ss (session leader), R (running – działający), T (stopped – zatrzymany), Z (zombie).
Zombie procesy – problem w naszych czatach:
ps aux | grep Z
Wyszukuje procesy zombie (znane z naszych dzienników z serwera MT2SRV, gdzie czasami pojawiały się procesy nieusunięte prawidłowo).
Wyświetlanie konkretnych kolumn
ps -o pid,user,%cpu,%mem,comm
Wyświetla tylko wybrane kolumny: PID, użytkownik, CPU, pamięć i nazwa polecenia.
ps aux -o pid,ppid,user,comm
PID, PPID (proces nadrzędny), użytkownik i nazwa polecenia – przydatne do zrozumienia zależności między procesami.
Monitorowanie procesów w pętli rzeczywistej – ale nie programem top
while true; do ps aux | grep game; sleep 2; done
Monitoruje konkretny proces co 2 sekundy. Przydatne gdy chcemy obserwować czy proces się restartuje.
Specjalistyczne zapytania
ps aux | awk '$3 > 10 { print $0 }'
Wyświetla procesy zużywające więcej niż 10% CPU.
ps aux | awk '$4 > 20 { print $2, $4, $11 }'
Wyświetla procesy zużywające więcej niż 20% pamięci (PID, %MEM, komenda).
Praktyczne scenariusze
# Sprawdzenie stanu serwera gry MT2SRV
ps aux | grep -E 'game|db|auth'
Szukamy trzech kluczowych procesów serwera.
# Znalezienie procesu zużywającego zasoby
ps aux --sort=-%mem | head -1
Proces zużywający największą pamięci.
# Znalezienie i zabicie zombie procesów
ps aux | grep Z | awk '{print $2}' | xargs kill -9
Ostrożnie! Usuwa procesy zombie (choć powinny być usunięte automatycznie).











