Inhaltsverzeichnis
Runbook: systemd
Trajanje: ~10 minut
Vloga: Linux administrator
Predpogoj: root/sudo, .NET 8 Runtime
Poganjanje Data Gateway kot systemd storitev pod Linuxom.
Potek dela
flowchart TD
A[Začetek] --> B[Namestitev Gateway]
B --> C[Ustvarjanje Service-Unit]
C --> D[systemctl enable]
D --> E[systemctl start]
E --> F[Health Check]
F --> G{V redu?}
G -->|Da| H[Končano]
G -->|Ne| I[Preveri journalctl]
style H fill:#e8f5e9
style I fill:#ffebee
1. Namestitev Gateway
# Ustvari mapo sudo mkdir -p /opt/data-gateway sudo chown $USER:$USER /opt/data-gateway # Kopiraj datoteke cp -r ./publish/* /opt/data-gateway/ # Nastavi kot izvršljivo chmod +x /opt/data-gateway/WvdS.WebAPI.Data.Gateway.Api # Prilagodi konfiguracijo sudo nano /opt/data-gateway/appsettings.json
2. Ustvarjanje uporabnika
# Namenski storitveni uporabnik sudo useradd --system --no-create-home --shell /sbin/nologin datagateway # Nastavi dovoljenja sudo chown -R datagateway:datagateway /opt/data-gateway
3. Ustvarjanje systemd Unit
sudo nano /etc/systemd/system/data-gateway.service
Vsebina:
[Unit] Description=WvdS Data Gateway Documentation=https://wiki.example.com/data-gateway After=network.target [Service] Type=notify User=datagateway Group=datagateway WorkingDirectory=/opt/data-gateway ExecStart=/opt/data-gateway/WvdS.WebAPI.Data.Gateway.Api Restart=always RestartSec=10 KillSignal=SIGINT SyslogIdentifier=data-gateway Environment=ASPNETCORE_ENVIRONMENT=Production Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false # Varnost NoNewPrivileges=true ProtectSystem=strict ProtectHome=true PrivateTmp=true ReadWritePaths=/opt/data-gateway/logs ReadWritePaths=/opt/data-gateway/data # Omejitve LimitNOFILE=65536 TimeoutStopSec=30 [Install] WantedBy=multi-user.target
4. Aktiviranje storitve
# Ponovno naloži systemd sudo systemctl daemon-reload # Aktiviraj samodejni zagon sudo systemctl enable data-gateway # Zaženi storitev sudo systemctl start data-gateway # Preveri status sudo systemctl status data-gateway
5. Health Check
# Počakaj da je pripravljen sleep 5 # Health Check curl -s http://localhost:5000/health # Pričakovan odgovor: "Healthy" # API test curl -s http://localhost:5000/api/v1/dsn/demo/tables | head
6. Prikaz dnevnikov
# Trenutni dnevniki sudo journalctl -u data-gateway -n 50 --no-pager # Live-Tail sudo journalctl -u data-gateway -f # Od danes sudo journalctl -u data-gateway --since today # Samo napake sudo journalctl -u data-gateway -p err
7. Kontrolni seznam
| # | Točka preverjanja | V |
| — | ———– | — |
| 1 | .NET 8 nameščen | |
| 2 | Gateway v /opt/data-gateway | |
| 3 | Service-User ustvarjen | |
| 4 | Unit datoteka ustvarjena | |
| 5 | Service enabled | |
| 6 | Service zagnan | |
| 7 | Health Check v redu |
Storitveni ukazi
| Ukaz | Opis |
| ——– | ————– |
systemctl start data-gateway | Zaženi |
systemctl stop data-gateway | Ustavi |
systemctl restart data-gateway | Ponovno zaženi |
systemctl status data-gateway | Status |
systemctl enable data-gateway | Samodejni zagon vklopljen |
systemctl disable data-gateway | Samodejni zagon izklopljen |
Odpravljanje težav
| Težava | Vzrok | Rešitev |
| ——— | ——— | ——– |
code=exited, status=203 | Napačna pot | Preveri ExecStart |
code=exited, status=1 | Napaka v konfiguraciji | Preveri journalctl |
Permission denied | Napačne pravice | Preveri chown |
Address already in use | Vrata zasedena | Druga vrata ali ubij proces |
Podrobna analiza napak:
# Neposredno testiraj izvršljivo datoteko sudo -u datagateway /opt/data-gateway/WvdS.WebAPI.Data.Gateway.Api # SELinux težave (RHEL/CentOS) sudo ausearch -m avc -ts recent sudo setsebool -P httpd_can_network_connect 1
Spreminjanje vrat
V appsettings.json:
{
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://0.0.0.0:8080"
}
}
}
}
Odpiranje požarnega zidu:
# firewalld (RHEL/CentOS) sudo firewall-cmd --permanent --add-port=8080/tcp sudo firewall-cmd --reload # ufw (Ubuntu/Debian) sudo ufw allow 8080/tcp
Odstranitev storitve
# Ustavi in deaktiviraj sudo systemctl stop data-gateway sudo systemctl disable data-gateway # Odstrani Unit datoteko sudo rm /etc/systemd/system/data-gateway.service sudo systemctl daemon-reload # Odstrani datoteke (neobvezno) sudo rm -rf /opt/data-gateway sudo userdel datagateway
Povezani Runbooks
- Docker - Kontejnerska alternativa
- Prometheus - Izvoz metrik
- Nastavitev TLS - HTTPS
« <- Windows storitev | -> Docker »
Wolfgang van der Stille @ EMSR DATA d.o.o. - Data Gateway Professional
Zuletzt geändert: dne 29.01.2026 ob 23:33