Open3
【Linux】ctrl-d と exit の違い
きっかけ
Linux サーバにSSHアクセスして何かしら作業した後そのアクセスを切断する際に、「ctrl-d」で抜ける人と「exit」で抜ける人がいて、これらの違いは何かあるのか気になった
まとめ
- 「ctrl-d」を実行すると、シェルに対してEOFシグナルが送信される
- 「exit」を実行すると、シェルに対して明示的にセッションを終了するよう指示される
- 使い分けとしては、対話式シェルでの操作終了には ctrl-d を使い、明示的に終了ステータスを制御したい場合は exit を使う
ctrl-d | exit | |
---|---|---|
ふるまい | EOFのシグナルをシェルに送信する | シェルに対して明示的にセッションを終了するよう指示する |
終了プロセス | シェルはEOFシグナルを受け取ると、現在のセッションを終了 | |
ログアウトプロセス | シェルセッションが終了すると、ユーザーはログアウトされる | シェルセッションが終了し、ユーザーはシステムからログアウトされる |
終了ステータス | 最後に実行されたコマンドの終了ステータスを返す | exit に続けて指定した数値を返す |
小難しい話を抜きにするなら、「Linux サーバにSSHアクセスして何かしら作業した後そのアクセスを切断する」ことに限るなら、本来想定された用途ではない ctrl-d を使うのはやめようねってこと