Een app draaien met & of nohup gaat prima tot de server herstart, het proces crasht of je zijn logs wilt vinden — dan valt het uit elkaar. systemd is het standaardantwoord: het start je app bij het opstarten, herstart hem als hij sterft en vangt zijn logs op. Een script of binary in een beheerde service veranderen is één klein bestand.
1. Schrijf een unit-bestand
Maak /etc/systemd/system/myapp.service:
[Unit]
Description=My application
After=network.target
[Service]
User=myapp
WorkingDirectory=/opt/myapp
ExecStart=/usr/bin/python3 /opt/myapp/run.py
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
Pas ExecStart, WorkingDirectory en User aan je app aan. Restart=always is wat hem in leven houdt.
2. Maak een toegewijde gebruiker (aanbevolen)
sudo useradd --system --no-create-home --shell /usr/sbin/nologin myapp
sudo chown -R myapp:myapp /opt/myapp
Als niet-root-gebruiker draaien beperkt de schade als de app ooit gecompromitteerd wordt.
3. Activeer hem en start hem
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
enable laat hem starten bij het opstarten; --now start hem meteen.
4. Controleer status en logs
sudo systemctl status myapp
journalctl -u myapp -f # live-logs volgen
Dagelijkse commando's
sudo systemctl restart myapp # herstarten na een wijziging
sudo systemctl stop myapp # hem stoppen
sudo systemctl disable myapp # niet meer starten bij het opstarten
Eerlijke waarschuwingen
- Voer
daemon-reloaduit na het bewerken van een unit-bestand, anders gebruikt systemd de oude versie. - Let op crashlussen. Als de app meteen faalt, blijft
Restart=alwayseeuwig proberen —RestartSec=5spreidt de pogingen; los de grondfout op via de logs. - Verkies een niet-root
User=zodat een gecompromitteerde app niet de hele server bezit.
Volgende stappen
Een systemd-service is hoe je wat dan ook 24/7 draaiend houdt — bijvoorbeeld een AI-agent die de klok rond draait of de relay achter een zelf-gehoste RustDesk-server. Is je app in plaats daarvan gecontaineriseerd, dan speelt Dockers --restart unless-stopped dezelfde rol — zie hoe je Docker installeert.
Reacties
Nog geen reacties. Wees de eerste.