Skip to content
BotServBotServ
OllamaSystemdServiceLinuxAutostart

Ollama als Systemd-Dienst

Ollama automatisch starten, überwachen und verwalten. Systemd-Service, Umgebungsvariablen und Troubleshooting.

S

schutzgeist

3 min read
Ollama als Systemd-Dienst

Ollama als Systemd-Dienst

Was dieser Artikel über Ollama als Systemd-Dienst behandelt

  • Wie Ollama mit Systemd als Dienst läuft.
  • Wie man Umgebungsvariablen und Optionen setzt.
  • Wie man Status prüft, neu startet und Fehler sucht.
  • Wie man Ollama sicher und stabil im Hintergrund betreibt.

Einleitung: Ollama als Systemd-Dienst

Wer Ollama regelmässig auf einem Server oder in einem Proxmox-LXC nutzt, möchte nicht bei jedem Neustart manuell das Programm starten. Systemd ist der Standard-Diensteverwalter unter den meisten Linux-Distributionen und eignet sich hervorragend, um Ollama automatisch zu starten, zu überwachen und bei Abstürzen neu zu starten.

Dieser Artikel zeigt, wie der Ollama-Systemd-Service konfiguriert, angepasst und gewartet wird.

Wichtige Begriffe

  • Systemd: Init-System und Diensteverwalter unter Linux.
  • Service: Konfiguration für einen dauerhaften Prozess.
  • Unit-Datei: Datei, die den Dienst beschreibt.
  • Environment: Umgebungsvariable für den Dienst.
  • Override: Ergänzende Konfiguration, die die Hauptkonfiguration erweitert.
  • Restart-Policy: Verhalten bei Abstürzen.
  • Journal: Systemprotokoll für Dienste.

Standard-Installation

Wenn Ollama mit dem offiziellen Installationsskript installiert wird, legt es meist eine Systemd-Unit an. Prüfen:

systemctl status ollama

Falls der Dienst existiert, ist er wahrscheinlich bereits aktiviert und läuft im Hintergrund.

Manuelle Service-Datei

Falls keine Unit vorhanden ist, kann man sie manuell erstellen:

sudo tee /etc/systemd/system/ollama.service <<EOF
[Unit]
Description=Ollama Service
After=network.target

[Service]
Type=simple
User=ollama
Group=ollama
WorkingDirectory=/home/ollama
ExecStart=/usr/local/bin/ollama serve
Restart=on-failure
RestartSec=10
Environment="HOME=/home/ollama"
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

[Install]
WantedBy=multi-user.target
EOF

Danach:

sudo systemctl daemon-reload
sudo systemctl enable --now ollama

Umgebungsvariablen setzen

Eigene Umgebungsvariablen sollten nicht direkt in der Haupt-Service-Datei geändert werden, sondern über eine Override-Datei:

sudo systemctl edit ollama

Ein Editor öffnet sich. Beispiel:

[Service]
Environment="OLLAMA_HOST=127.0.0.1:11434"
Environment="OLLAMA_NUM_PARALLEL=2"
Environment="OLLAMA_MAX_LOADED_MODELS=1"
Environment="CUDA_VISIBLE_DEVICES=0"

Danach:

sudo systemctl daemon-reload
sudo systemctl restart ollama

Wichtige Umgebungsvariablen

  • OLLAMA_HOST: Bind-Adresse und Port.
  • OLLAMA_NUM_PARALLEL: Parallel laufende Anfragen.
  • OLLAMA_MAX_LOADED_MODELS: Maximale Anzahl gleichzeitig geladener Modelle.
  • OLLAMA_MODELS: Alternativer Pfad für Modell-Dateien.
  • CUDA_VISIBLE_DEVICES: Bestimmte Nvidia-GPU auswählen.
  • HIP_VISIBLE_DEVICES: Bestimmte AMD-GPU auswählen.

Status prüfen

systemctl status ollama
systemctl is-active ollama
systemctl is-enabled ollama

Logs ansehen

journalctl -u ollama -f
journalctl -u ollama --since "1 hour ago"

Neustart, Stoppen und Starten

sudo systemctl restart ollama
sudo systemctl stop ollama
sudo systemctl start ollama

GPU-Nutzung prüfen

ollama ps
nvidia-smi

Wenn Ollama im Systemd-Kontext läuft, muss der Benutzer Zugriff auf die GPU haben. Zum Beispiel muss der Dienstbenutzer in der video oder render Gruppe sein.

Sicherheit

  • Nicht als root laufen lassen: Ein eigener ollama-Benutzer ist sicherer.
  • OLLAMA_HOST einschränken: Standard 127.0.0.1, nur bei Bedarf ins Netzwerk binden.
  • Keine Secrets in der Unit: API-Keys oder Passwörter nicht direkt speichern.
  • Dateirechte: Modellverzeichnis sollte dem ollama-Benutzer gehören.

Mehrere Ollama-Instanzen

Für getrennte Modelle oder Benutzer können mehrere Services definiert werden, zum Beispiel ollama-8b.service und ollama-70b.service, die auf unterschiedlichen Ports lauschen. Das ist aber nur in Spezialfällen sinnvoll, da mehrere Instanzen Speicher duplizieren können.

Typische Stolpersteine

  • Dienst startet nicht: Benutzer oder Pfad falsch.
  • GPU nicht erkannt: Benutzer fehlt in video/render oder Treiber nicht installiert.
  • Port belegt: Ein anderer Prozess nutzt 11434.
  • Modellverzeichnis nicht gefunden: OLLAMA_MODELS falsch gesetzt oder keine Rechte.
  • Override wird nicht geladen: systemctl daemon-reload vergessen.
  • Zu viele parallele Anfragen: System überlastet.

FAQ: Ollama als Systemd-Dienst

Wird Ollama automatisch gestartet? Ja, wenn der Dienst mit systemctl enable aktiviert wurde.

Wo finde ich die Ollama-Logs? Mit journalctl -u ollama.

Wie setze ich Umgebungsvariablen? Über systemctl edit ollama in einer Override-Datei.

Kann ich Ollama als root laufen lassen? Technisch ja, aber aus Sicherheitsgründen nicht empfohlen.

Was ist, wenn Ollama beim Boot nicht startet? systemctl status ollama und journalctl -u ollama prüfen.

Quellen und weiterführende Literatur

Zusammenfassung: Ollama als Systemd-Dienst

Ollama lässt sich bequem als Systemd-Dienst betreiben, damit es automatisch startet und überwacht wird. Über Override-Dateien lassen sich Umgebungsvariablen wie Host, Port, Parallelität und Modellpfad sicher anpassen, ohne die Haupt-Service-Datei zu ändern. Wichtig sind ein eigener Benutzer, korrekte Berechtigungen für GPU und Modellverzeichnis sowie die regelmässige Prüfung der Logs mit journalctl. Wer Systemd richtig nutzt, bekommt einen stabilen Ollama-Server für das lokale KI-Setup.

Zurück zum KI Blog
Share:

Ähnliche Beiträge