memo

2012-03-24

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 されなくなった。