From 70801b3d714b067d64744697433c5841926dad4d Mon Sep 17 00:00:00 2001 From: Valentin Rothberg Date: Mon, 23 Aug 2021 17:49:47 +0200 Subject: generate systemd: custom stop signal Commit 9ac5267598c3 changed the type of the generated systemd units from forking to notify. Parts of these changes was also removing the need to pass any information via the file system (e.g., PIDFILE, container ID). That in turn implies that systemd takes care of stopping the container. By default, systemd first sends a SIGTERM and after a certain timeout, it'll send a SIGKILL. That's pretty much what Podman is doing, unless the container was created with a custom stop signal which is the case when the --stop-signal flag was used or systemd is mounted. Account for that by using systemd's KillSignal option which allows for changing SIGTERM to another signal. Also make sure that we're using the correct timeout for units generated with --new. Fixes: #11304 Signed-off-by: Valentin Rothberg --- pkg/systemd/generate/common.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'pkg/systemd/generate/common.go') diff --git a/pkg/systemd/generate/common.go b/pkg/systemd/generate/common.go index 45e12014a..f2092c0ae 100644 --- a/pkg/systemd/generate/common.go +++ b/pkg/systemd/generate/common.go @@ -8,9 +8,9 @@ import ( "github.com/pkg/errors" ) -// minTimeoutStopSec is the minimal stop timeout for generated systemd units. -// Once exceeded, processes of the services are killed and the cgroup(s) are -// cleaned up. +// minTimeoutStopSec is the minimal stop timeout for generated systemd units +// without --new. Once exceeded, processes of the services are killed and the +// cgroup(s) are cleaned up. const minTimeoutStopSec = 60 // validateRestartPolicy checks that the user-provided policy is valid. -- cgit v1.2.3-54-g00ecf