mirror of
https://github.com/containers/podman.git
synced 2025-07-28 10:52:35 +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.service
andpodman.socket
files into/etc/systemd/system
systemctl daemon-reload
systemctl enable podman.socket
systemctl start podman.socket
systemctl 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.service
andpodman.socket
files into~/.config/systemd/user
systemctl --user enable podman.socket
systemctl --user start podman.socket
systemctl --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.