sshを介してsudo systemctl stop sshを実行してもsshセッションがすぐに終了しないのはなぜですか?

sshを介してsudo systemctl stop sshを実行してもsshセッションがすぐに終了しないのはなぜですか?

この質問は好奇心から来ていますが、現在リモートシステムとSSHセッションがあり、次のコマンドを実行しているとします。

sudo systemctl stop ssh

実行後:

systemctl status ssh

サービスの状態を確認してみると、サービスが非アクティブ(非アクティブ)のようですが、まだリモートでコマンドを実行できるのはなぜですか。

もう一度申し上げますが、公式の質問ではありません。

時間をいただきありがとうございます

答え1

たとえば、SSHデーモンは接続時に少なくとも1回フォークされますsshd。これ以降、接続ではなく別のプロセスによって接続が処理されます。これリスニングデーモン自体。

systemctl stop ssh新しいSSH接続を確立できないようにリスニングデーモンを停止しました。分岐したプロセスが維持されるため、既存の接続も維持されます。

以下はサンプルスニペットですpstree -u

systemd-+-…
        |-sshd---sshd---sshd(kamil)---bash---…

最初のものはsshdrootとして実行されるデーモンです。 2番目は、まだroot権限を維持する分岐権限昇格プロセスです。三つ目は根の力を失い、それは私(上湯)のものだ。デーモンを停止(終了)しても他の2つには影響しません(例:テストしました)。

関連情報