プロセスが親シェルの終了で生存するには、どの要件と十分な条件を満たす必要がありますか?
シグナルについて具体的に考えてみると、どのシグナルがプロセスから無視されたり、プロセスに転送されたりしないのですか?
SIGHUP、SIGTERM?
しかし、
nohup
プロセスはSIGHUPだけを無視し、SIGTERMは無視しないようにしますか? (disown
親シェルがプロセスにシグナルを送信するのを避けるようです)SIGINT、SIGQUIT、SIGTSTP、SIGTTIN、SIGTTOUなどの端末生成信号?
ただし、
disown
and&
(バックグラウンド)は制御端末からプロセスを切断しません。 (nohup
制御端末からプロセスを切断できます)。
信号以外に必要なものはありますか?
上記の条件を考慮して、親シェルが終了した後もプロセスが生き残るようにするにはどうすればよいですか?
親シェルが終了した後でもプロセスが生き残るようにすることは、プロセスの親シェルを変更するのと同じですか?
bashシェルやcoreutilsなどの基本ユーティリティでプロセスの親シェルプロセスを変更することが唯一の2つの方法ですか
disown
?nohup
シェルが終了すると、親と子の関係は変わりますか?