フォアグラウンドプロセスとバックグラウンドプロセスの主な違いは何ですか?

フォアグラウンドプロセスとバックグラウンドプロセスの主な違いは何ですか?

シェルにコマンドを入力すると、デフォルトでforkを呼び出してサブコマンドが生成され、サブランチャーは私たちが入力したコマンドなので、親コマンドはシェルになります。フォアグラウンドプロセスの場合、親プロセス(この場合はシェル)は子プロセスが終了するのを待つ必要があります。これを入力するとバックグラウンドで実行されます。もしそうなら、親プロセスが子プロセスが終了するのを待つか待たないようにするのですか?

ベストアンサー1

〜のようにエリック・レノフ コメントしました。、独自のコードでサブプロセスを待つには、次のようにする必要があります。wait関数(通常はシステムコールとCライブラリ関数として実装されているので、セクション2と3でマンページを見つけることができます)。リンクされたページには実装例があります。

シェルコードで同じことを行うには、次のものを使用できます。waitバックグラウンド操作が完了するのを待つコマンド。

おすすめ記事