実行可能ファイルへの上書きは、元の実行可能ファイルを実行しているプロセスに影響しますか?

ティム

実行可能ファイルがプロセスで実行されるときに、実行可能ファイルが上書きまたは削除され、再インストールによって再作成された場合、プロセスは新しい実行可能ファイルを再実行しますか?

質問への答えは

  • 実行可能ファイルがプロセスでサービス/デーモンとして実行されているかどうか。

  • Linux、Unixなどのオペレーティングシステム...?

  • 再インストールがインストーラーファイル(debUbuntu、msiWindowsのファイルなど)からのものか、ソースコードのビルドからのものか。

ここではいくつかの例を示します。

  • Ubuntuでは、プロセスが実行可能ファイルを実行するとき、および実行可能ファイルを上書きするときに、、、およびそのソースコードを介して手動で再インストールすることによりconfigureプロセスは新しい実行可能ファイルではなく、元の実行可能ファイルを実行し続けます。makemake install

  • Windwos 10では、プロセスが実行可能ファイルをサービスとして実行するときに、msiインストーラーファイルを介して実行可能ファイルを再インストールすると、サービスプロセスが再起動して新しい実行可能ファイルを実行すると聞きましたUbuntuまたはDebianの.debファイルからインストールする場合と同じまたは同様のケースですか?

ありがとう。

Gilles'SO-悪であることをやめなさい '

カーネルと実行可能ファイルの種類によって異なります。実行可能ファイルがどのように開始またはインストールされたかには依存しません。

Linuxの場合:

  • ネイティブ実行可能ファイル(つまり、カーネルによって直接実行されるマシンコードを含むバイナリ)の場合、実行中に実行可能ファイルを変更することはできません。

    $ cp /bin/sleep .
    $ ./sleep 999999 &
    $ echo >sleep
    sh: 1: cannot create sleep: Text file busy
    

    実行可能ファイルを削除(つまり、リンクを解除)して、同じパスに新しい実行可能ファイルを作成することができます。ファイルが開いたまま削除される他の場合と同様に、実行可能ファイルを削除しても実行中のプロセスには影響せず、ファイルが使用されなくなるまで、つまり実行中のすべてのインスタンスが実行されるまで、実際にはディスクから削除されません。プログラムが終了します。

  • スクリプト(で始まる#!)の場合、プログラムの実行中にスクリプトファイルを変更できます。それがプログラムに影響を与えるかどうかは、インタプリタがスクリプトをどのように読み取るかによって異なります。実行を開始する前にスクリプト全体を独自のメモリに読み込む場合、実行は影響を受けません。インタプリタがオンデマンドでスクリプトを読み取ると、実行に影響が出る可能性があります。のいくつかの実装はshそれを行います。

他の多くのUnixシステムはこのように動作しますが、すべてではありません。IIRCの古いバージョンのSolarisでは、ネイティブ実行可能ファイルを変更できます。これにより、通常、実行可能ファイルがクラッシュします。HP / UXを含むいくつかのUnixバリアントでは、現在実行中のネイティブ実行可能ファイルを削除することさえできません。

ほとんどのソフトウェアインストールプログラムは、既存のバイナリを上書きするのではなく、新しい実行可能ファイルを配置する前に、既存の実行可能ファイルを削除するように注意します。例:

rm /bin/target
cp target /bin

だけでなくcp target /bininstallシェルコマンドは、このようなことを行います。ただし、これは理想的ではありません。プロセスの実行/bin/target中に誰かが実行しようとすると、cpプログラムが破損するためです。ファイルを一時的な名前にコピーしてから、最終的な名前に名前を変更することをお勧めします。ファイルの名前を変更する(つまり、同じディレクトリ内に移動する、またはより一般的には同じファイルシステム内に移動する)と、前のターゲットファイルが存在する場合は削除されます。dpkgたとえば、これがどのように機能するかです。

cp target /bin/target.tmp
mv /bin/target.tmp /bin/target

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ptrace()を使用して、特定のプロセスに特定の実行可能ファイルを実行させるにはどうすればよいですか?

分類Dev

JavaScriptファイルを介してロードされるSCSSファイルの変数を上書きする実行可能な方法は何ですか?

分類Dev

元のPython実行可能ファイル(virtualenvではない)へのパスを取得します

分類Dev

Pythonスクリプトを実行可能ファイルとして実行し、それを取り巻くファイルへのアクセスを維持するにはどうすればよいですか?

分類Dev

スクリプトを実行するために、.shファイルの代わりに.txtファイルを実行可能にしてみませんか?

分類Dev

スクリプトが実行可能ファイルとしてコンパイルされるときに、外部で使用されるファイルへのファイルパスをどのように実装しますか?

分類Dev

Pythonのサブプロセスを介してファイルを実行可能にする

分類Dev

C++: プログラムを IDE から実行しているか、スタンドアロンの実行可能ファイルとして実行しているかに関係なく、特定のフォルダーを見つけます。

分類Dev

launch4jを使用しているときに実行可能ファイルへのパスを取得するにはどうすればよいですか?

分類Dev

実行中の実行可能ファイルを削除します

分類Dev

実行中の実行可能ファイルまたは.soを上書きする

分類Dev

psはどのようにして他のユーザーのプロセスの実行可能ファイルを取得しますか?

分類Dev

NUnitテストをスタンドアロンの実行可能ファイルとして実行するにはどうすればよいですか?

分類Dev

OCamlはppx実行可能ファイルへのパスを指定します

分類Dev

JavaでExecutorServiceを使用して、最初の実行可能ファイルを実行している間に他の実行可能ファイルをブロックすることは可能ですか?

分類Dev

暗黙のルールが実行可能ファイルについて何も述べていない場合、makeはどのようにしてCソースファイルから実行可能ファイルをビルドしますか?

分類Dev

PowerShellは、現在実行中のホストへのパスを検索します(PowerShell実行可能ファイル)

分類Dev

他のファイルからインポートされた関数を使用している場合、Unix上の実行可能Pythonファイルからスクリプトを実行するにはどうすればよいですか?(ModuleNotFoundError)

分類Dev

実行中のプロセスのアドレスを指定して、実行可能ファイルで命令を見つけますか?

分類Dev

すべてのユーザーが実行可能なすべての実行可能ファイルを設定しますが、実行不可能なファイルは実行不可能のままにしますか?

分類Dev

実行可能ファイルのコピーを個別のプロセスとして開くにはどうすればよいですか?

分類Dev

Visual Studioは、ビルドする必要のある実行可能ファイルをロックしています

分類Dev

ElectronアプリをWindowsの実行可能ファイルまたはインストール可能ファイルとしてデプロイするにはどうすればよいですか?

分類Dev

すべての実行可能ファイルを管理者として実行できるようにするにはどうすればよいですか?

分類Dev

ファイルのアクセス許可に影響を与えることなく、別のユーザーに属する実行可能ファイルの文字列を置き換えることは可能ですか?

分類Dev

HPUXで、実行中のすべてのプロセスの実行可能ファイルへのフルパスを一覧表示するにはどうすればよいですか?

分類Dev

手動で実行するには、ldを使用してelf実行可能ファイルを作成しますか?

分類Dev

Excel.Application実行可能ファイルを複数のWSFプロセス間で共有しますか?

分類Dev

32ビットの実行可能ファイル(64ビットOS上)を使用してプログラムでEFSファイルにアクセスすることはできません

Related 関連記事

  1. 1

    ptrace()を使用して、特定のプロセスに特定の実行可能ファイルを実行させるにはどうすればよいですか?

  2. 2

    JavaScriptファイルを介してロードされるSCSSファイルの変数を上書きする実行可能な方法は何ですか?

  3. 3

    元のPython実行可能ファイル(virtualenvではない)へのパスを取得します

  4. 4

    Pythonスクリプトを実行可能ファイルとして実行し、それを取り巻くファイルへのアクセスを維持するにはどうすればよいですか?

  5. 5

    スクリプトを実行するために、.shファイルの代わりに.txtファイルを実行可能にしてみませんか?

  6. 6

    スクリプトが実行可能ファイルとしてコンパイルされるときに、外部で使用されるファイルへのファイルパスをどのように実装しますか?

  7. 7

    Pythonのサブプロセスを介してファイルを実行可能にする

  8. 8

    C++: プログラムを IDE から実行しているか、スタンドアロンの実行可能ファイルとして実行しているかに関係なく、特定のフォルダーを見つけます。

  9. 9

    launch4jを使用しているときに実行可能ファイルへのパスを取得するにはどうすればよいですか?

  10. 10

    実行中の実行可能ファイルを削除します

  11. 11

    実行中の実行可能ファイルまたは.soを上書きする

  12. 12

    psはどのようにして他のユーザーのプロセスの実行可能ファイルを取得しますか?

  13. 13

    NUnitテストをスタンドアロンの実行可能ファイルとして実行するにはどうすればよいですか?

  14. 14

    OCamlはppx実行可能ファイルへのパスを指定します

  15. 15

    JavaでExecutorServiceを使用して、最初の実行可能ファイルを実行している間に他の実行可能ファイルをブロックすることは可能ですか?

  16. 16

    暗黙のルールが実行可能ファイルについて何も述べていない場合、makeはどのようにしてCソースファイルから実行可能ファイルをビルドしますか?

  17. 17

    PowerShellは、現在実行中のホストへのパスを検索します(PowerShell実行可能ファイル)

  18. 18

    他のファイルからインポートされた関数を使用している場合、Unix上の実行可能Pythonファイルからスクリプトを実行するにはどうすればよいですか?(ModuleNotFoundError)

  19. 19

    実行中のプロセスのアドレスを指定して、実行可能ファイルで命令を見つけますか?

  20. 20

    すべてのユーザーが実行可能なすべての実行可能ファイルを設定しますが、実行不可能なファイルは実行不可能のままにしますか?

  21. 21

    実行可能ファイルのコピーを個別のプロセスとして開くにはどうすればよいですか?

  22. 22

    Visual Studioは、ビルドする必要のある実行可能ファイルをロックしています

  23. 23

    ElectronアプリをWindowsの実行可能ファイルまたはインストール可能ファイルとしてデプロイするにはどうすればよいですか?

  24. 24

    すべての実行可能ファイルを管理者として実行できるようにするにはどうすればよいですか?

  25. 25

    ファイルのアクセス許可に影響を与えることなく、別のユーザーに属する実行可能ファイルの文字列を置き換えることは可能ですか?

  26. 26

    HPUXで、実行中のすべてのプロセスの実行可能ファイルへのフルパスを一覧表示するにはどうすればよいですか?

  27. 27

    手動で実行するには、ldを使用してelf実行可能ファイルを作成しますか?

  28. 28

    Excel.Application実行可能ファイルを複数のWSFプロセス間で共有しますか?

  29. 29

    32ビットの実行可能ファイル(64ビットOS上)を使用してプログラムでEFSファイルにアクセスすることはできません

ホットタグ

アーカイブ