Att köra en app med & eller nohup går bra tills servern startas om, processen kraschar eller du vill hitta dess loggar — då faller det samman. systemd är standardsvaret: den startar din app vid uppstart, startar om den om den dör och fångar dess loggar. Att göra ett skript eller en binär till en hanterad tjänst är en liten fil.
1. Skriv en unit-fil
Skapa /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
Justera ExecStart, WorkingDirectory och User efter din app. Restart=always är det som håller den vid liv.
2. Skapa en dedikerad användare (rekommenderas)
sudo useradd --system --no-create-home --shell /usr/sbin/nologin myapp
sudo chown -R myapp:myapp /opt/myapp
Att köra som icke-root-användare begränsar skadan om appen någon gång komprometteras.
3. Aktivera och starta den
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
enable gör att den startar vid uppstart; --now startar den omedelbart.
4. Kontrollera status och loggar
sudo systemctl status myapp
journalctl -u myapp -f # följ live-loggar
Vardagskommandon
sudo systemctl restart myapp # starta om efter en ändring
sudo systemctl stop myapp # stoppa den
sudo systemctl disable myapp # sluta starta vid uppstart
Ärliga varningar
- Kör
daemon-reloadefter att du redigerat en unit-fil, annars använder systemd den gamla versionen. - Se upp för kraschloopar. Om appen misslyckas direkt försöker
Restart=alwaysför evigt —RestartSec=5sprider ut försöken; åtgärda grundfelet via loggarna. - Föredra en icke-root
User=så att en komprometterad app inte äger hela servern.
Nästa steg
En systemd-tjänst är hur du håller vad som helst igång dygnet runt — till exempel en AI-agent som körs dygnet runt eller reläet bakom en självhostad RustDesk-server. Om din app i stället är containeriserad spelar Dockers --restart unless-stopped samma roll — se hur du installerar Docker.
Kommentarer
Inga kommentarer än. Bli först.