podman/contrib/systemd
Valentin Rothberg 0f4e2be073 podman.service: use sdnotiy
Commit 2b6dd3fb43 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>
2020-08-13 17:53:59 +02:00
..
auto-update auto updates 2020-03-17 17:18:56 +01:00
system podman.service: use sdnotiy 2020-08-13 17:53:59 +02:00
README.md Switch all references to github.com/containers/libpod -> podman 2020-07-28 08:23:45 -04:00
user systemd: symlink user->system 2020-07-20 11:12:41 +02:00

README.md

Setting up Podman service for systemd socket activation

system-wide (podman service run as root)

  1. copy the podman.service and podman.socket files into /etc/systemd/system
  2. systemctl daemon-reload
  3. systemctl enable podman.socket
  4. systemctl start podman.socket
  5. 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")

  1. mkdir -p ~/.config/systemd/user
  2. copy the podman.service and podman.socket files into ~/.config/systemd/user
  3. systemctl --user enable podman.socket
  4. systemctl --user start podman.socket
  5. 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.