Systemd Service automatisch erstellen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 8: Zeile 8:
 
/home/xinux/pod-httpdpod.service
 
/home/xinux/pod-httpdpod.service
 
/home/xinux/container-httpd.service
 
/home/xinux/container-httpd.service
</pre>
 
cat container-httpd.service
 
<pre>
 
# container-httpd.service
 
# autogenerated by Podman 3.4.2
 
# Fri Jan 20 10:09:03 UTC 2023
 
 
[Unit]
 
Description=Podman container-httpd.service
 
Documentation=man:podman-generate-systemd(1)
 
Wants=network-online.target
 
After=network-online.target
 
RequiresMountsFor=/run/containers/storage
 
BindsTo=pod-httpdpod.service
 
After=pod-httpdpod.service
 
 
[Service]
 
Environment=PODMAN_SYSTEMD_UNIT=%n
 
Restart=on-failure
 
TimeoutStopSec=70
 
ExecStart=/usr/bin/podman start httpd
 
ExecStop=/usr/bin/podman stop -t 10 httpd
 
ExecStopPost=/usr/bin/podman stop -t 10 httpd
 
PIDFile=/run/containers/storage/overlay-containers/cca28b83802329e39e5a02e30607ab5198762145d01ca2d7741e5d02cb551327/userdata/conmon.pid
 
Type=forking
 
 
[Install]
 
WantedBy=multi-user.target default.target
 
 
</pre>
 
</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.  
 
*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.
 
*Anschließend werden die neuen Units in die Systemd-Konfiguration eingelesen und aktiviert.
*mkdir -p ~/.config/systemd/user
+
mkdir -p ~/.config/systemd/user
*mv *.service .config/systemd/user/
+
*Nun verschieben wir unsere generierten Dateien in user gerade angelegtes Verzeichnis.
*systemctl --user enable container-httpd.service
+
mv *.service .config/systemd/user/
*podman pod stop httpdpod
+
*Im nächsten Schritt laden wir den Dienst
*systemctl --user start container-httpd.service
+
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>
 
<pre>
 
● container-httpd.service - Podman container-httpd.service
 
● container-httpd.service - Podman container-httpd.service
Zeile 56: Zeile 35:
 
             └─55576 /usr/libexec/podman/conmon --api-version 1 -c cca28b83802329e39e5a02e30607ab5198762145d01ca2d7741e5d02cb551327 -u cca28b83802329e39e5a02e30607ab5198762145d01ca2d774
 
             └─55576 /usr/libexec/podman/conmon --api-version 1 -c cca28b83802329e39e5a02e30607ab5198762145d01ca2d7741e5d02cb551327 -u cca28b83802329e39e5a02e30607ab5198762145d01ca2d774
 
</pre>
 
</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=
 
=Links=
 
*https://www.my-it-brain.de/wordpress/podman-kann-auch-systemd-service-units-generieren/
 
*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