mirror of
https://github.com/containers/podman.git
synced 2025-10-27 11:15:38 +08:00
Commit 2b6dd3fb4384 set the killmode of the podman.service to the systemd default which ultimately lead to the problem that systemd will kill *all* processes inside the unit's cgroup and hence kill all containers whenever the service is stopped. Fix it by setting the type to sdnotify and the killmode to process. `podman system service` will send the necessary notify messages when the NOTIFY_SOCKET is set and unset it right after to prevent the backend and container runtimes from jumping in between and send messages as well. Fixes: #7294 Signed-off-by: Valentin Rothberg <rothberg@redhat.com>
Setting up Podman service for systemd socket activation
system-wide (podman service run as root)
- copy the
podman.serviceandpodman.socketfiles into/etc/systemd/system systemctl daemon-reloadsystemctl enable podman.socketsystemctl start podman.socketsystemctl status podman.socket podman.service
Assuming the status messages show no errors, the libpod service is ready to respond to the APIv2 on the unix domain socket /run/podman/podman.sock
podman.service
You can refer to this example for a sample podman.service file.
podman.socket
You can refer to this example for a sample podman.socket file.
user (podman service run as given user aka "rootless")
mkdir -p ~/.config/systemd/user- copy the
podman.serviceandpodman.socketfiles into~/.config/systemd/user systemctl --user enable podman.socketsystemctl --user start podman.socketsystemctl --user status podman.socket podman.service
Assuming the status messages show no errors, the libpod service is ready to respond to the APIv2 on the unix domain socket /run/user/$(id -u)/podman/podman.sock
podman.service
You can refer to this example for a rootless podman.service file.
podman.socket
You can refer to this example for a rootless podman.socket file.