個人的、Linuxを触ってて面白かったとか、納得の行ったことをここにメモっておきたい。

disown -hについて

sshでつないで、bashでプログラムを実行するとき、そのプログラムはbashの子プロセスとして実行されるのよね。 そもそもbashはsshdの子プロセスとして実行されるのだけれども。 でね、bashの子プロセスとして実行されるわけだから、bashを閉じるとその子プロセスであるプログラムも死ぬんだよね。

でも、bashを抜けても死なないでほしいプログラムってあるわけじゃないですか。それを実現する方法が プロセスを ctrl + zで一旦停止、bgでバックグラウンド実行。そして、disown -h なわけですね。 で、そうするとそのプロセスの親は誰になるか?って不思議に思いますよね。

 1058 ?        Ss     0:00      1  1080 13483  1836  0.0 /lib/systemd/systemd --user
 1059 ?        S      0:00      0     0 35244  1184  0.0  \_ (sd-pam)
 2345 ?        S      0:00     18     0  7408  2860  0.0 sudo hugo server -p 443 --bind=0.0.0.0 --baseURL=https://ingenboy.com/alpha/
 2346 ?        Sl     0:18     38     0 2141188 1696712 43.7  \_ hugo server -p 443 --bind=0.0.0.0 --baseURL=https://ingenboy.com/alpha/

そうなんです。systemdなるんですねー。これが結構面白いところ。覚えておいていいです。 ちなみに、親子関係を含めて全プロセスを表示するのが、

ps avxf

っていうコマンドです!