KROK 01SSH shell není správce služby
Příkaz node server.js v terminálu patří k interaktivní session. Její zavření může proces ukončit. nohup nebo terminálový multiplexer pomůže při dočasné práci, ale není kompletní plán produkčního startu a obnovy.
KROK 02Vyber jednoho správce procesů
U Dockeru použij Compose restart policy a ověř start Dockeru po bootu. U aplikace přímo na hostu použij systemd. Pro jeden proces nekombinuj více správců. Unit níže předpokládá /usr/bin/node, uživatele deploy a čitelný env soubor.
[Unit]
Description=My application
After=network-online.target
Wants=network-online.target
[Service]
User=deploy
WorkingDirectory=/srv/my-app
EnvironmentFile=/etc/my-app.env
ExecStart=/usr/bin/node /srv/my-app/server.js
Restart=on-failure
RestartSec=5
NoNewPrivileges=true
PrivateTmp=true
[Install]
WantedBy=multi-user.targetKROK 03Instaluj jen pro svoji aplikaci
Zkontrolovanou jednotku ulož jako /etc/systemd/system/my-app.service a nepřepisuj cizí službu. Env soubor patří mimo Git s omezenými právy. Službu zapni a zkontroluj stav. Skutečná aplikace může potřebovat další zapisovatelné cesty a omezení.
sudo systemctl daemon-reload
sudo systemctl enable --now my-app
systemctl status my-app --no-pager
journalctl -u my-app -n 50 --no-pagerKROK 04Smyčka restartů je příznak, ne řešení
Při opakovaných pádech najdi první chybu. Často chybí proměnná, nesedí pracovní adresář, neběží databáze, koliduje port nebo dochází paměť. Ověř běh po odhlášení. Kontrolu rebootu naplánuj do schváleného servisního okna.
COPY → YOUR AI
Vezmi si další krok do svého chatu.
Bezpečný kontext k tomuto návodu. Žádné tajné údaje. Funguje pro ChatGPT, Claude i další asistenty.
Zdroje a technická dokumentace
systemd service reference ↗Docker documentation ↗Postup je vzor pro uvedené předpoklady. Před použitím na živém serveru ověř kompatibilitu svého projektu a konkrétní konfiguraci.