Systemd Service automatisch erstellen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Pod mit Apache erstellen

  • Mit dem nachfolgenden Befehl wird ein pod mit dem Namen httpdpod erstellt. In diesem Pod läuft dann der httpd Container.
podman run -d --pod new:httpdpod --name httpd -p 8080:80 -v /var/www/html:/usr/local/apache2/htdocs httpd:latest
  • Mit dem Befehl podman generate systemd können wir uns Automatisch Service Dateien generieren lassen.
podman generate systemd --name --files httpdpod
  • Nun wurden zwei Dateien in userem Home Verzeichnis generiert
/home/xinux/pod-httpdpod.service
/home/xinux/container-httpd.service
  • Um die generierten Service-Units zu installieren und zukünftig als derjenige User auszuführen, welcher den Pod und die Container erzeugt hat, verschiebe wir sie in Verzeichnis ~/.config/systemd/user.
  • Anschließend werden die neuen Units in die Systemd-Konfiguration eingelesen und aktiviert.
mkdir -p ~/.config/systemd/user
  • Nun verschieben wir unsere generierten Dateien in user gerade angelegtes Verzeichnis.
mv *.service .config/systemd/user/
  • Im nächsten Schritt laden wir den Dienst
systemctl --user enable container-httpd.service

Überprüfung des Ergebnisses

  • Um das Ergebniss zu prüfen stoppen wir manuell den pod httpdpod und starten Ihn danach mit der Unit Datei.
podman pod stop httpdpod
systemctl --user start container-httpd.service
  • Nun können wir mit dem status Parameter überprüfen, ob alles geklappt hat.
systemctl --user status container-httpd.service
● container-httpd.service - Podman container-httpd.service
     Loaded: loaded (/root/.config/systemd/user/container-httpd.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-01-20 10:17:30 UTC; 1min 57s ago
       Docs: man:podman-generate-systemd(1)
    Process: 55507 ExecStart=/usr/bin/podman start httpd (code=exited, status=0/SUCCESS)
   Main PID: 55576 (conmon)
      Tasks: 2 (limit: 13979)
     Memory: 3.5M
     CGroup: /user.slice/user-0.slice/user@0.service/container-httpd.service
             └─55576 /usr/libexec/podman/conmon --api-version 1 -c cca28b83802329e39e5a02e30607ab5198762145d01ca2d7741e5d02cb551327 -u cca28b83802329e39e5a02e30607ab5198762145d01ca2d774
Achtung
Die Systemd Dienste werden beendet, nachdem die letzte Sitzung für den Benutzer geschlossen wurde.
Die Systemd Dienste können weiter für den Benutzer ausgeführt werden, nachdem sich der Benutzer abgemeldet hat, indem die anhaltende Verwendung aktiviert wird
  • loginctl enable-linger xinux

Links