http://bugzilla.suse.com/show_bug.cgi?id=906900 Thomas Blume <thomas.blume@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Flags| |needinfo?(max@suse.com) --- Comment #24 from Thomas Blume <thomas.blume@suse.com> --- (In reply to Thomas Blume from comment #23)
This thread seems to address our problem:
maybe there is also a translation problem of ordering dependencies from the init script. However, setting KillMode to none worked in my tests. There are no more SIGKILLS from systemd.
Sorry, please forget this, the next test gave me the SIGKILLS back: open("/sys/fs/cgroup/systemd/user.slice/user-26.slice/session-c6.scope/cgroup.procs", O_RDONLY|O_CLOEXEC) = 26 fstat(26, {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f79e338e000 read(26, "1885\n1886\n1888\n1892\n", 4096) = 20 kill(1885, SIGKILL) = 0 kill(1885, SIGCONT) = 0 kill(1886, SIGKILL) = 0 kill(1886, SIGCONT) = 0 kill(1888, SIGKILL) = 0 kill(1888, SIGCONT) = 0 kill(1892, SIGKILL) = 0 kill(1892, SIGCONT) = 0 The kill is triggered because the processes were sending a SIGCHLD before: [ 992.086127] systemd[1]: Received SIGCHLD from PID 1812 (postgresql). [ 992.086167] systemd[1]: Child 1812 (postgresql) died (code=exited, status=0/SUCCESS) [ 1091.202051] systemd[1]: Received SIGCHLD from PID 1885 (postgres). [ 1091.337486] systemd[1]: Child 1885 (postgres) died (code=killed, status=9/KILL) [ 1091.337935] systemd[1]: Child 1886 (postgres) died (code=killed, status=9/KILL) [ 1092.047199] systemd[1]: Received SIGCHLD from PID 1892 (postgres). [ 1092.047291] systemd[1]: Child 1892 (postgres) died (code=killed, status=9/KILL) [ 1092.154185] systemd[1]: Received SIGCHLD from PID 1888 (postgres). [ 1092.154229] systemd[1]: Child 1888 (postgres) died (code=killed, status=9/KILL) [ 1092.672545] systemd[1]: Received SIGCHLD from PID 1951 (postgresql). [ 1092.672589] systemd[1]: Child 1951 (postgresql) died (code=exited, status=0/SUCCESS) This invokes service_sigchld_event that shows: /* Immediately get rid of the cgroup, so that the * kernel doesn't delay the cgroup empty messages for * the service cgroup any longer than necessary */ service_kill_control_processes(s); which eventually calls cg_kill: int cg_kill(const char *controller, const char *path, int sig, bool sigcont, bool ignore_self, Set *s) { [...] /* This goes through the tasks list and kills them all. This * is repeated until no further processes are added to the * tasks list, to properly handle forking processes */ Reinhard, is it possible that the postgres shutdown routine triggers the SIGCHLD? Btw. what is the difference between postgres and postgresql? Seems that the postgresql processes exit cleanly. -- You are receiving this mail because: You are on the CC list for the bug.