いくつかのコマンドが完了するまで端末を「中断」させるのはなぜですか?

いくつかのコマンドが完了するまで端末を「中断」させるのはなぜですか?

lxpanel時々†などのプログラムを端末で実行します。端末はプロンプトに戻らずに停止します。Ctrl+を押してCプロンプトに戻ることができますが、これは終了しますlxpanel。しかしAlt、+を押してF2(コマンドを実行するウィンドウが表示されます)、実行するとlxpanel問題はありません。

なぜこれですか?端末でコマンドを実行するのとAlt+を押すと表示される実行ウィンドウでコマンドを実行するのはどう違いますかF2

ここのlxpanelは単なる例です。いくつかのプログラムでこれをしました。

ベストアンサー1

デフォルトでは、ターミナルはプログラムをフォアグラウンドで実行するため、プログラムが完了するまでシェルに戻りません。これは、標準入力から読み込んだり、標準出力に書き込むプログラムに便利です。通常、多くのプログラムが同時に実行されることを望まない。プログラムをバックグラウンドで実行するには、次のように起動できます。

$ lxpanel &

または、すでに実行している場合はCtrl+を使用してZ一時停止し、実行してbgバックグラウンドに移動することもできます。どちらも新しいシェルプロンプトが表示されますが、プログラムはまだ実行中であり、その出力は端末に表示されます(したがって、入力中にポップアップが表示されることがあります)。

一部のプログラム(通常デーモン)は起動時に別々のプロセスを分岐し、基本プロセスがすぐに終了するようにします。これにより、シェルをブロックせずにプログラムを実行し続けることができます。

おすすめ記事