Linux実行コマンドマニュアル

王林
王林転載
2024-02-18 16:42:13844ブラウズ

Linux exec命令手册

機能の説明

exec コマンドは、Linux で指定されたコマンドを呼び出して実行するために使用されます。 exec コマンドは通常、他のコマンドを実行するためにシェル スクリプトで使用されます。現在のターミナルで exec コマンドを使用する場合、指定されたコマンドは、新しい子プロセスを作成するのではなく、実行後に現在のプロセスを置き換えます。

コマンド構文

リーリー

オプションの意味

###意味### -c-a-l
オプション
空の環境を使用して実行します
シェルは、実行されたコマンドに引数なしで名前を渡します
シェルの先頭にダッシュを配置してコマンドにパラメータを渡します

参考例 例 1

リーリー

例 2

リーリー

知識の拡大

1. システム コール exec は元のプロセスを新しいプロセスに置き換えますが、プロセスの PID は変更されません。したがって、exec システムコールは新しいプロセスを作成するのではなく、元のプロセスコンテキストの内容を置き換えるだけであると考えることができます。元のプロセスのコード セグメント、データ セグメント、およびスタック セグメントは、新しいプロセスに置き換えられます。

プロセスには主に次の側面が含まれます:

実行可能プログラム

  • プロセスに関連するすべてのデータ (変数、メモリ、バッファを含む)
  • プログラムコンテキスト (プログラムカウンタPC、プログラム実行場所を保存)
  • 2. exec は excl と execv から始まる 6 つの関数から構成される関数クラスターです。
  • exec システム コールを実行します。これが一般的です。fork() 関数を使用して新しいプロセスを作成し、そのプロセスに exec コールを実行させます。 fork() が新しいプロセスを作成した後、親プロセスはコード セグメントを子プロセスと共有しますが、データ スペースは分離されています。ただし、親プロセスは自身のデータ スペースの内容を子プロセスにコピーします。コンテキストも子プロセスにコピーされます。効率を向上させるために、コピーオンライト戦略が採用されており、子プロセスの作成時に親プロセスのアドレス空間はコピーされません。親プロセスと子プロセスは共通のアドレス空間を持ち、子プロセスがデータを書き込む必要がある場合 (バッファーにデータを書き込むなど)、この時点でアドレス空間がコピーされ、バッファーが子プロセスにコピーされます。したがって、親プロセスと子プロセスは独立したアドレス空間を持ちます。この戦略により、fork() の後に exec を実行した後の効率が大幅に向上します。最初にコピーすると、exec 後に子プロセスのデータが破棄され、新しいプロセスに置き換えられます。

    以上がLinux実行コマンドマニュアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

    声明:
    この記事はmryunwei.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。