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…“)
 
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