Systemd Service automatisch erstellen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „=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 r…“)
 
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 2: Zeile 2:
 
*Mit dem nachfolgenden Befehl wird ein pod mit dem Namen httpdpod erstellt. In diesem Pod läuft dann der httpd Container.
 
*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
 
  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
 +
<pre>
 +
/home/xinux/pod-httpdpod.service
 +
/home/xinux/container-httpd.service
 +
</pre>
 +
*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
 +
<pre>
 +
● 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
 +
</pre>
 +
;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=
 +
*https://www.my-it-brain.de/wordpress/podman-kann-auch-systemd-service-units-generieren/

Aktuelle Version vom 20. Januar 2023, 10:38 Uhr

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