Systemd Service automatisch erstellen: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
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
+
*Zuerst erstellen wir unser systemd ~/.config/systemd/user Verzeichnis
*mv *.service .config/systemd/user/
+
*In dieses Verzeichnis werden alle Podman Service Units gelegt.
*systemctl --user enable container-httpd.service
+
mkdir -p ~/.config/systemd/user
*podman pod stop httpdpod
+
*Nun verschieben wir unsere generierten Dateien in user gerade angelegtes Verzeichnis.
*systemctl --user start container-httpd.service
+
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>
 
<pre>
 
● container-httpd.service - Podman container-httpd.service
 
● container-httpd.service - Podman container-httpd.service

Version vom 20. Januar 2023, 10:34 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.
  • Zuerst erstellen wir unser systemd ~/.config/systemd/user Verzeichnis
  • In dieses Verzeichnis werden alle Podman Service Units gelegt.
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

Links