適当に使ってたCtrl + z とCtrl + cが何をしているのか整理してみる試み

TL;DR (簡潔に説明)

Ctrl + z

実行中のコマンドの一時停止

Ctrl + c

実行中のコマンドの終了

めっちゃ分かりやすいサイト

www.infraeye.com

説明に誤りとかあったら教えて欲しいです。

Rails serverで挙動を確認

rails sでサーバーが起動しています

rails s

Ctrl + zでjobs番号1で実行されていたrails s コマンドがsuspended(停止の過去形)しているのが確認できます。jobs番号の後の+はカレントジョブ(直前に操作のあったjob)を表してるらしいです。

jobs, Ctrl + z

停止中のjobなので以下のようにfgコマンドでフォアグラウンドに戻す事ができます。

fg %1, localhost:3000にアクセス

今度はCtrl + cを押してみると

Ctrl + c, jobs

=== puma shutdown: 2023-04-24 06:54:04 +0900 ===
- Goodbye!
Exiting

上記の文字が出力されています、文字から何かがstopしてfinishするためのrequestsをwaitingしてるらしいです。そしてpumaなるものがshutdownしたらしいです。 Goodbye! 唐突にお別れの挨拶を言われ、Exiting(退出中)してるらしいです。もうこの実行されていたコマンド君(一連のプロセス)は僕たちの元(フォアグラウンド、terminalで見れるところ)に帰ってこない可能性が高いです。 jobsコマンドを実行しても何も出力されません。

もう一度まとめると、

Ctrl + z

実行中のコマンドの一時停止

Ctrl + c

実行中のコマンドの終了

最後に見ておいてほしい画像、以下のサイトの一番下のジョブ制御という画像でイメージを掴んでおくと納得かもしれないです。

www.infraeye.com