1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Supervisor - zarządzanie procesami na VPS

# Supervisor na VPS - zarządzanie procesami Python, Node.js i Celery

Opublikowano: 9 kwietnia 2026 · Kategoria: VPS

⚡ W skrócie · 8 min czytania

-   Supervisor (supervisord) do zarządzania procesami w tle na VPS. Konfiguracja Gunicorn, Celery, Node.js. Automatyczny restart, logi, monitoring i supervisorctl.
-   Instalacja Supervisora.
-   Konfiguracja - Gunicorn + Django/Flask.
-   Konfiguracja - Celery worker.
-   Konfiguracja - Node.js / Next.js.

Uruchamiasz aplikację Python z Gunicornem lub workery Celery i chcesz, żeby automatycznie startowały po restarcie VPS i wznawiały pracę po awarii? Supervisor (supervisord) to sprawdzone narzędzie do zarządzania procesami w tle - prostsze niż systemd dla aplikacji użytkownika i bardziej elastyczne niż screen/tmux.

## Instalacja Supervisora

```
# Ubuntu / Debian
sudo apt update && sudo apt install supervisor -y

# CentOS / Rocky Linux
sudo dnf install supervisor -y

# Python pip (najnowsza wersja)
pip install supervisor

# Uruchom i włącz przy starcie
sudo systemctl enable --now supervisor

# Sprawdź status
sudo systemctl status supervisor
```

## Konfiguracja - Gunicorn + Django/Flask

Utwórz plik konfiguracyjny `/etc/supervisor/conf.d/myapp.conf`:

```
[program:myapp]
; Komenda startowa - ścieżka do venv + Gunicorn
command=/var/www/myapp/venv/bin/gunicorn myapp.wsgi:application
    --workers 3
    --bind 127.0.0.1:8000
    --timeout 120
    --log-level info

; Katalog roboczy aplikacji
directory=/var/www/myapp

; Użytkownik (nie root!)
user=www-data

; Automatyczny start i restart
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true

; Logi
stdout_logfile=/var/log/supervisor/myapp.log
stderr_logfile=/var/log/supervisor/myapp.err.log
stdout_logfile_maxbytes=10MB
stdout_logfile_backups=5

; Zmienne środowiskowe
environment=DJANGO_SETTINGS_MODULE="myapp.settings.production",
    DATABASE_URL="postgresql://user:pass@localhost/myapp"
```

Po każdej zmianie pliku `.conf`: `sudo supervisorctl reread && sudo supervisorctl update`.

## Konfiguracja - Celery worker

```
[program:celery-worker]
command=/var/www/myapp/venv/bin/celery
    -A myapp
    worker
    --loglevel=info
    --concurrency=4
    -n worker1@%%h

directory=/var/www/myapp
user=www-data
autostart=true
autorestart=true
stopwaitsecs=600
stopasgroup=true
killasgroup=true

stdout_logfile=/var/log/supervisor/celery-worker.log
stderr_logfile=/var/log/supervisor/celery-worker.err.log

[program:celery-beat]
command=/var/www/myapp/venv/bin/celery
    -A myapp
    beat
    --loglevel=info
    --scheduler django_celery_beat.schedulers:DatabaseScheduler

directory=/var/www/myapp
user=www-data
autostart=true
autorestart=true

stdout_logfile=/var/log/supervisor/celery-beat.log
stderr_logfile=/var/log/supervisor/celery-beat.err.log
```

## Konfiguracja - Node.js / Next.js

```
[program:nextjs-app]
command=/usr/bin/node /var/www/nextapp/.next/standalone/server.js

directory=/var/www/nextapp
user=nodeuser
autostart=true
autorestart=true

environment=NODE_ENV="production",PORT="3000",HOST="127.0.0.1"

stdout_logfile=/var/log/supervisor/nextjs.log
stderr_logfile=/var/log/supervisor/nextjs.err.log
```

Dla Node.js rozważ też PM2 - ma dedykowane funkcje jak cluster mode i reload bez downtime. Supervisor jest lepszy gdy zarządzasz mieszanką technologii (Python + Node).

## supervisorctl - zarządzanie procesami

```
# Status wszystkich procesów
sudo supervisorctl status

# Start / stop / restart konkretnego procesu
sudo supervisorctl start myapp
sudo supervisorctl stop myapp
sudo supervisorctl restart myapp

# Przeładuj konfigurację (po dodaniu nowego .conf)
sudo supervisorctl reread
sudo supervisorctl update

# Logi w czasie rzeczywistym
sudo supervisorctl tail -f myapp
sudo supervisorctl tail -f myapp stderr

# Interaktywny shell
sudo supervisorctl
```

## Porównanie: Supervisor vs systemd vs PM2

Cecha

Supervisor

systemd

PM2

Uprawnienia

Root lub user

Root (systemctl)

User (bez root)

Języki/frameworki

Dowolne

Dowolne (OS-level)

Node.js (głównie)

Cluster mode

Przez grupy

Przez instancje

Wbudowany

Reload bez downtime

Nie wprost

Tak (ExecReload)

Tak (pm2 reload)

Web interface

supervisord web UI

Brak (cockpit extra)

PM2 Plus (płatny)

Najlepszy dla

Python, mieszane stosy

Usługi systemowe

Node.js production

## Grupy procesów

Supervisor pozwala grupować procesy i zarządzać nimi jednym poleceniem:

```
[group:myapp-stack]
programs=myapp,celery-worker,celery-beat

; Zarządzanie całą grupą:
; sudo supervisorctl start myapp-stack:*
; sudo supervisorctl stop myapp-stack:*
; sudo supervisorctl restart myapp-stack:*
```

## Dobre praktyki

-   **Nigdy nie uruchamiaj jako root** - ustaw `user=www-data` lub dedykowany user aplikacji
-   **Używaj `stopasgroup=true`** dla procesów z subprocess (Gunicorn, Celery) - Supervisor zabije cały drzewo procesów
-   **Rotacja logów** - ustaw `stdout_logfile_maxbytes` i `stdout_logfile_backups` żeby logi nie zapchały dysku
-   **Zmienne środowiskowe przez `environment=`** - nie w `.env` (Supervisor go nie wczytuje automatycznie)
-   **Testuj konfigurację przed dodaniem** - uruchom komendę ręcznie jako docelowy user, żeby upewnić się że działa przed wpisaniem do Supervisora

## Najczęstsze pytania

Co to jest Supervisor i do czego służy? +

Supervisor (supervisord) to system zarządzania procesami dla Linuksa. Uruchamia i monitoruje procesy w tle (Python, Node.js, Celery, Gunicorn), automatycznie restartuje je po awarii i przechowuje logi. Alternatywa dla systemd dla aplikacji użytkownika, szczególnie przydatna gdy nie masz uprawnień roota do tworzenia usług systemd.

Jaka jest różnica między Supervisor a systemd? +

systemd to system init OS (root-only), Supervisor to zarządca procesów użytkownika. systemd jest lepszy dla usług systemowych (nginx, PostgreSQL). Supervisor jest lepszy dla aplikacji Python/Node.js, kolejek (Celery), workerów - szczególnie gdy chcesz zarządzać procesami bez sudo. PM2 to odpowiednik Supervisora specyficznie dla Node.js.

Jak uruchomić aplikację Django/Flask z Gunicornem przez Supervisor? +

Utwórz plik /etc/supervisor/conf.d/myapp.conf z sekcją \[program:myapp\]. Ustaw command=/path/to/venv/bin/gunicorn myapp.wsgi:application --workers 3 --bind 127.0.0.1:8000, directory=/var/www/myapp, user=www-data. Potem: supervisorctl reread && supervisorctl update && supervisorctl start myapp.

Jak sprawdzić logi aplikacji w Supervisor? +

supervisorctl tail -f myapp - podgląd stdout w czasie rzeczywistym. supervisorctl tail -f myapp stderr - logi błędów. Pliki logów: /var/log/supervisor/myapp.log (stdout) i /var/log/supervisor/myapp.err.log (stderr). Status wszystkich procesów: supervisorctl status.

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Contabo

VPS z rootem do instalacji Supervisora i aplikacji Python/Node

VPS root access

[Aktywuj rabat →](/out/contabo/#reklama "Contabo")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo/)

Mikr.us

Budżetowy VPS pod projekty Python/Node z Supervisorem

Budżetowy VPS

[Aktywuj rabat →](/out/mikrus/#reklama "Mikr.us")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus/)

ProSerwer.pl

Polski VPS z wsparciem technicznym do Python/Node deploymentu

Polski VPS

[Aktywuj rabat →](/out/proserwer-pl/#reklama "ProSerwer.pl")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/proserwer/)

## Powiązane strony

-   [Gdzie kupić VPS - ranking
    
    Aktualne ceny VPS z pełnym kosztem 2-letnim (TCO) i bez ukrytych opłat odnowienia.
    
    ](/vps/)
-   [Docker na VPS - instalacja i konfiguracja](/baza-wiedzy/docker-na-vps/)
-   [Node.js na hostingu współdzielonym](/baza-wiedzy/nodejs-na-hostingu-wspoldzielonym/)
-   [Python/Django na hostingu - poradnik](/baza-wiedzy/python-django-na-hostingu/)
-   [UFW - firewall na VPS krok po kroku](/baza-wiedzy/ufw-firewall-konfiguracja/)
-   [Wszystkie artykuły](/baza-wiedzy/)
-   [Jaki VPS wybrać?](/jaki-vps-wybrac/)

Autor: [Redakcja HostGrade.pl](/autorzy/) Zespół redakcyjny · Aktualizacja: 9 kwietnia 2026

Artykuły HostGrade.pl przygotowuje i aktualizuje redakcja serwisu. Ceny startowe, ceny odnowienia i warunki planów sprawdzamy w cennikach i regulaminach dostawców, a potem liczymy całkowity koszt za 2 lata (cena startowa plus odnowienia). Zasady zbierania danych i liczenia kosztów opisujemy na stronie Metodologia. Linki partnerskie oznaczamy jako #reklama.

[O redakcji i metodologii →](/autorzy/)