Systemd Service automatisch erstellen: Unterschied zwischen den Versionen
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> | </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 | |
| − | *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 | + | 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