exec コマンドは、Linux で指定されたコマンドを呼び出して実行するために使用されます。 exec コマンドは通常、他のコマンドを実行するためにシェル スクリプトで使用されます。現在のターミナルで exec コマンドを使用する場合、指定されたコマンドは、新しい子プロセスを作成するのではなく、実行後に現在のプロセスを置き換えます。
オプション | ###意味###|
---|---|
空の環境を使用して実行します | |
シェルは、実行されたコマンドに引数なしで名前を渡します | |
シェルの先頭にダッシュを配置してコマンドにパラメータを渡します |
プロセスには主に次の側面が含まれます:
実行可能プログラム
exec システム コールを実行します。これが一般的です。fork() 関数を使用して新しいプロセスを作成し、そのプロセスに exec コールを実行させます。 fork() が新しいプロセスを作成した後、親プロセスはコード セグメントを子プロセスと共有しますが、データ スペースは分離されています。ただし、親プロセスは自身のデータ スペースの内容を子プロセスにコピーします。コンテキストも子プロセスにコピーされます。効率を向上させるために、コピーオンライト戦略が採用されており、子プロセスの作成時に親プロセスのアドレス空間はコピーされません。親プロセスと子プロセスは共通のアドレス空間を持ち、子プロセスがデータを書き込む必要がある場合 (バッファーにデータを書き込むなど)、この時点でアドレス空間がコピーされ、バッファーが子プロセスにコピーされます。したがって、親プロセスと子プロセスは独立したアドレス空間を持ちます。この戦略により、fork() の後に exec を実行した後の効率が大幅に向上します。最初にコピーすると、exec 後に子プロセスのデータが破棄され、新しいプロセスに置き換えられます。
以上がLinux実行コマンドマニュアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。