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 を使うのはやめようねってこと