私が間違っている場合は訂正してください:Bashシェルが外部ランチャーを実行するとき、bashシェルは、フォアグラウンドでプログラムを実行するための子プロセスを生成します。キーを押して生成された信号がある場合、信号は次のようになります。送る子プロセスに処理済みプログラムに合格してください。
Bashシェルが組み込みコマンドを実行するとき、bashシェルは、シェルプロセスの組み込みコマンドをフォアグラウンドで直接実行します。どのキーを押しても生成された信号がある場合、その信号は次のようになります。送るシェルプロセスとして?これは扱う信号、プログラムの組み込みコマンド、またはbash
?組み込みコマンドは独自のシグナルハンドラを持つことができますか、それともシグナルハンドラに依存する必要がありますかbash
?
たとえば、bashシェルがwait
フォアグラウンドで実行されているときにCtrl-Cを押すと、シェルプロセスはSIGINT信号を受け取り、wait
bashで処理しますか?wait
独自のシグナルハンドラがあるか、依存するシグナルハンドラがありますかbash
?
ありがとうございます。
ベストアンサー1
シグナル、組み込みコマンドプログラム、またはbashを処理するものは何ですか?
組み込みコマンドを含むプログラムはbashです。これが組み込みの定義です。外部プログラムではなくシェルに組み込まれています。
シェルは、信号を受信したときに行われていた操作によって異なる反応をする可能性があります。しかし、他のプロセスが関係しないので、信号を受信することは常にシェルプロセスです。