# 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`

```bash
ps
```

Wyświetla procesy bieżącego użytkownika w aktualnej sesji terminalowej. Bardzo podstawowe, rzadko wystarczające dla administratora.

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/jVDimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/jVDimage.png)

<p class="callout info">Przeglądanie wszystkich procesów z pełnymi informacjami</p>

```bash
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).

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/03limage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/03limage.png)

<p class="callout info">Alternatywny format wyświetlania</p>

```
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.

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/7f1image.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/7f1image.png)

<p class="callout info">Filtrowanie procesów konkretnego użytkownika</p>

```bash
ps -u 'nazwa_usera'
```

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/t3ximage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/t3ximage.png)

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.

<p class="callout info">Wyszukiwanie konkretnych procesów</p>

```bash
ps aux | grep 'nazwa procesu'
```

Wyszukuje procesy związane z danym procesem

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/3t4image.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/3t4image.png)

```
ps aux | grep -v grep
```

<table border="1" id="bkmrk--5" style="border-collapse: collapse; width: 100%;"><colgroup><col style="width: 50%;"></col><col style="width: 50%;"></col></colgroup><tbody><tr><td>[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/BTgimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/BTgimage.png)  
</td><td>[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/SwQimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/SwQimage.png)  
</td></tr></tbody></table>

Eliminuje z wyniku samo polecenie grep (często pojawia się w wynikach).

```bash
pgrep -lf 'nazwa_procesu'
```

Szuka procesu po pełnej nazwie polecenia (bardziej precyzyjne niż grep).

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/hnhimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/hnhimage.png)

<p class="callout info">Sortowanie procesów</p>

```bash
ps aux --sort=-%cpu | head -20
```

Wyświetla 20 procesów zużywających najwięcej CPU, posortowanych malejąco.

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/nizimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/nizimage.png)

```bash
ps aux --sort=-%mem | head -20
```

Wyświetla 20 procesów zużywających najwięcej pamięci RAM.

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/wxZimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/wxZimage.png)

```bash
ps aux --sort=-vsz
```

Sortuje po wirtualnym rozmiarze pamięci.

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/tx6image.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/tx6image.png)

```bash
ps aux | wc -l
```

Liczy całkowitą liczbę procesów w systemie.

[![image.png](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/scaled-1680-/GBUimage.png)](https://wiedza.konio-dc.eu/uploads/images/gallery/2025-11/GBUimage.png)

<p class="callout info">Monitorowanie procesów hiearchy – relacje między procesami</p>

```bash
ps auxf
```

Wyświetla procesy w formie drzewa, pokazując które procesy są "dziećmi" innych procesów.

```bash
pstree -p user
```

Pokazuje drzewo procesów danego użytkownika z PID.

<p class="callout info">Monitorowanie procesów w czasie – status i sygnały</p>

```bash
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).

<p class="callout info">Wyświetlanie konkretnych kolumn</p>

```
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.

<p class="callout info">Monitorowanie procesów w pętli rzeczywistej – ale nie programem top</p>

```
while true; do ps aux | grep game; sleep 2; done
```

Monitoruje konkretny proces co 2 sekundy. Przydatne gdy chcemy obserwować czy proces się restartuje.

<p class="callout info">Specjalistyczne zapytania</p>

```bash
ps aux | awk '$3 > 10 { print $0 }'
```

Wyświetla procesy zużywające więcej niż 10% CPU.

```bash
ps aux | awk '$4 > 20 { print $2, $4, $11 }'
```

Wyświetla procesy zużywające więcej niż 20% pamięci (PID, %MEM, komenda).

<p class="callout info">Praktyczne scenariusze</p>

```bash
# Sprawdzenie stanu serwera gry MT2SRV
ps aux | grep -E 'game|db|auth'
```

Szukamy trzech kluczowych procesów serwera.

```bash
# Znalezienie procesu zużywającego zasoby
ps aux --sort=-%mem | head -1
```

Proces zużywający największą pamięci.

```bash
# 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).