exec() をすぐに実行するのではなく、「login」と「sudo」が子プロセスを分岐するのはなぜですか?

exec() をすぐに実行するのではなく、「login」と「sudo」が子プロセスを分岐するのはなぜですか?

。で長期実行コマンドを実行したときに、そのコマンドがプロセスリスト()に表示されることをsudo確認しました。sudops

また、ログインするとテキストコンソールがlogin表示されることを確認しました。systemctl status "session-${XDG_SESSION_ID}.scope"

なぜ別のサブプロセスをフォークするのですか?exec()必要なプログラム(の場合はシェル)に完全に置き換えるためにwhichを使用しないのはなぜですかlogin?たとえば、これがうまくいくnice方法です。env

ベストアンサー1

親プロセスの後もクリーンアップする必要があります。たとえば、ログイン履歴の場合は、ログインしたユーザーのリストを表示するなどの操作でman utmpどのコマンドが使用されているかを確認します。who

Linuxでは、セットアップとクリーンアップの両方の操作がプラグイン認証モジュール(PAM)によって行われます。

おすすめ記事