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

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