Să rulezi o aplicație cu & sau nohup merge până când serverul repornește, procesul pică sau vrei să-i găsești logurile — atunci totul se destramă. systemd e răspunsul standard: îți pornește aplicația la boot, o repornește dacă moare și îi capturează logurile. Să transformi un script sau un binar într-un serviciu administrat înseamnă un singur fișier mic.
1. Scrie un fișier de unitate
Creează /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
Ajustează ExecStart, WorkingDirectory și User pentru aplicația ta. Restart=always e ce o ține în viață.
2. Creează un utilizator dedicat (recomandat)
sudo useradd --system --no-create-home --shell /usr/sbin/nologin myapp
sudo chown -R myapp:myapp /opt/myapp
Rularea ca utilizator non-root limitează pagubele dacă aplicația e vreodată compromisă.
3. Activează-l și pornește-l
sudo systemctl daemon-reload
sudo systemctl enable --now myapp
enable îl face să pornească la boot; --now îl pornește imediat.
4. Verifică starea și logurile
sudo systemctl status myapp
journalctl -u myapp -f # follow live logs
Comenzi de zi cu zi
sudo systemctl restart myapp # restart after a change
sudo systemctl stop myapp # stop it
sudo systemctl disable myapp # stop starting on boot
Avertismente cinstite
- Rulează
daemon-reloaddupă ce editezi un fișier de unitate, altfel systemd folosește versiunea veche. - Fii atent la buclele de căderi. Dacă aplicația pică imediat,
Restart=alwaysreîncearcă la nesfârșit —RestartSec=5distanțează încercările; repară eroarea de fond pe baza logurilor. - Preferă un
User=non-root, ca o aplicație compromisă să nu dețină tot serverul.
Pașii următori
Un serviciu systemd e felul în care ții orice pornit 24/7 — de exemplu un agent AI care rulează non-stop sau releul din spatele unui server RustDesk găzduit de tine. Dacă aplicația ta e în container, --restart unless-stopped din Docker are același rol — vezi cum instalezi Docker.
Comentarii
Încă nu există comentarii. Fii primul.