Vlastná Systemd služba a časovač k nej
Ako vytvorit vlastnú SystemD službu ktorá bude bežať na pozadí na Debian-e.
Príklad umiestnenia definície služby
/etc/systemd/system/custom-service.service
Príklad samotnej definície služby
[Unit]
Description=My Custom App
After=network.target
Requires=network.target
[Service]
Type=simple
ExecStart=/usr/bin/myapp --flag1 --flag2
WorkingDirectory=/opt/myapp
User=www-data
Group=www-data
Environment="ENV_VAR=value"
EnvironmentFile=/etc/myapp.env
Restart=on-failure
RestartSec=5s
TimeoutStartSec=30
TimeoutStopSec=10
StandardOutput=journal
StandardError=journal
[Install]
WantedBy=multi-user.target
Typy služby
- simple – Základný. Spustí ExecStart priamo
- forking – Forkuje
- oneshot – Pre scripty čo sa spustia a skončia
- notify – Notifikácia pre systém že je pripravený.
- idle – Spustí ked systém nič nerobí
Príklad umiestnenia časovača pre službu
Cesta musí byť rovnaká akorát ako pre službu, akorát na konci názvu nebude .service ale .timer
/etc/systemd/system/custom-service.timer
Príklad samotnej definície časovača pre službu
[Unit]
Description=Run mytask.service every 15 minutes
[Timer]
OnBootSec=5min
OnUnitActiveSec=15min
Unit=mytask.service
[Install]
WantedBy=timers.target
Príklad umiestenia súbora pre nastavenie prostredia
/etc/myapp.env
Príklad definície samotného súbora pre nastavenie prostredia
DB_HOST=localhost DB_PORT=3306
Príkazy
systemctl enable --now mytask.timer
systemctl list-timers
journalctl -u myapp.service
systemctl daemon-reload
Príspevok pridaný dňa: 17.02.2025 od užívatela: Dodoslav.