回答:
Ctrl-Dまたはexit
同じです。
「X」を使用する場合、ウィンドウマネージャは終了信号をシェルに送信します。最後に同じ結果になります。シェルが反応しない場合、ユーザーは通常警告を受け取り、シェルを強制的に終了できます(に等しいkill -9 $PID
)。
zsh
シェルとして使用している場合、「X」メソッドとexitメソッドには1つの小さな違いがあります。バックグラウンドプロセスを実行している場合、exit
/ ctrl-Dは初めて「ジョブを実行しています」という警告メッセージのみを生成します。 2回目はシェルが閉じられます。「X」ボタンを使用すると、シェルは警告なしで即座に終了します。
端末エミュレータを閉じることは、CTRL + D
(オプションhuponexit
が設定されていない限り)を押すことと同じではありません。
ターミナルを閉じる(「X」をクリックする)と、ターミナルエミュレータはSIGHUPをシェルに送信します。bashがSIGHUPを受信すると、すべてのジョブにSIGHUPも送信されます。
CTRL+D
またはlogout
またはexit
で端末を終了すると、シェルはすべてのジョブにSIGHUPを送信せずに終了します。これはデフォルトの動作ですが、bash shopt
設定を 変更することで変更できますhuponexit
。
したがって、最終的に、バックグラウンドで何も実行されていないことを確認することが目的の場合は、「X」をクリックする必要があります。
。
彼のコメントでjofelによって提供された情報は正しくありません(申し訳ありませんがjofel)。端末エミュレータは、シェルの下で実行されているジョブの手掛かりがないため、ジョブを終了できません。
注:
この動作は完全にシェルに依存しています。シェルによってデフォルトの動作が異なる可能性があります。
Ctrl+d
プロセスがPPID 1 = systemdによって継承される場合
&
実行されているプロセスは実行されたままになります。「X」の場合、それらは終了します。