ssh から logout すると残してきた process が systemd に kill される
screen を残しておいたはずなのに、次に login するといなくなってる。
systemd をサーバー側でも使用している。
sshd の起動は sshd.socket
-> sshd@.service
。 systemd が port を待ち受けて、来た接続毎に sshd
が起動される。
ということは、 logout -> sshd
終了 -> sshd@.service
終了 -> cgroup 内に残った process を kill <- ここに巻き込まれてる?
cgroup の確認:
$ cat /proc/self/cgroup 8:net_prio:/ 7:blkio:/ 6:freezer:/ 5:devices:/ 4:memory:/ 3:cpuacct,cpu:/system/sshd@.service/32 2:cpuset:/ 1:name=systemd:/system/sshd@.service/32
/etc/pam.d/sshd
に -session optional pam_systemd.so
を書き加えて再度:
$ cat /proc/self/cgroup 8:net_prio:/ 7:blkio:/ 6:freezer:/ 5:devices:/ 4:memory:/ 3:cpuacct,cpu:/ 2:cpuset:/ 1:name=systemd:/user/myuser/c6
で、無事 kill されなくなった。