Systemd Service automatisch erstellen: Unterschied zwischen den Versionen
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…“) |
|||
| 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 | ||
| + | <pre> | ||
| + | /root/pod-httpdpod.service | ||
| + | /root/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> | ||
| + | *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 | ||
| + | mv *.service .config/systemd/user/ | ||
| + | systemctl --user enable container-httpd.service | ||
| + | podman pod stop container-httpd | ||
| + | systemctl --user start container-httpd.service | ||
Version vom 20. Januar 2023, 10:14 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
/root/pod-httpdpod.service /root/container-httpd.service
cat container-httpd.service
# 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
- 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 mv *.service .config/systemd/user/ systemctl --user enable container-httpd.service podman pod stop container-httpd systemctl --user start container-httpd.service