web-dev-qa-db-ja.com

誤ってアプリを実行したままにして、Software Updaterで[今すぐインストール]をクリックするとどうなりますか?

ソフトウェアアップデータupdate-managerポップアップが表示され、Firefoxなどのセキュリティアップデートが表示されます。もちろん、「今すぐインストール」をクリックして続行します。

ただし、これを実行するときにFirefoxを実行しているとどうなりますか?それでもFirefoxは更新されますか?更新はスキップされ、次回もポップアップしますか?このアップデートにより、Firefoxが強制終了し、クラッシュする可能性がありますか?ソフトウェアを部分的に更新するだけで、Firefoxのインストールが中断する可能性はありますか?

22
finefoot

Windowsのことを考えている必要があります。 Unixはそれを正しく行い、その後、Windowsが登場し、間違った方法で開発されました。

Windowsでは、実行中のプロセスで使用中のファイルを置き換えると、そのプロセスに悪影響を与える可能性があります。プロセスはそのファイル内の場所を参照し、ファイルから誤った情報を取得します。通常、壊滅的な結果になります。そのため、通常、Windowsのアップデートでは、すべてのプロセスが正しいバージョンのライブラリなどを使用していることを確認するために再起動が必要です。

Unixでは、ファイルがプロセスによって開かれると、同じファイルが常にプロセスで使用可能になります元のファイルがファイルシステムから削除されている場合でも

更新後、ファイルシステムには異なるバージョンのファイルが含まれ、更新後に開始されるすべてのプロセスはその新しいファイルを使用します。ただし、Windowsとは異なり、古いUnixプロセスはすべて、元の元のファイルを引き続き使用します。ファイルシステム経由でアクセスできなくなっても、これらのファイルは、プロセスが使用している限り存続します。最終的に、ファイルを使用しているプロセスがない場合、古いバージョンのファイルが最終的に削除されます。

もちろん、アップデートのメリットをすぐに得たい場合は、Firefox(または他のプロセス)を再起動することもできます。選択はあなた次第です。

40
Ray Butterworth

通常、プログラムが開いている間にプログラムを更新しても問題はありません。他の回答者が説明したように、実行中のプロセスは、実行可能ファイルが削除されても実行を継続できます。

ただし、Firefoxのマルチプロセスモデルにより、アップデート後に再起動するように求めるプロンプトが表示される場合があります。これは 原因 Firefoxが新しいプロセスを生成して異なるWebサイトを分離するため、Firefoxを更新した後、Firefoxを再起動する前に新しいプロセスを生成した場合、新しいプロセスはFirefoxよりも新しいバージョンになります。ブラウザの残りの部分。これによりさまざまな問題が発生する可能性があるため、Firefoxは続行する前に再起動を要求する場合があります。

ちなみに、Chrome これを回避する は、何もせずに座っている「zygote」プロセスを使用します。OSに要求する代わりに、ブラウザが新しいプロセスを生成する必要がある場合ブラウザの実行可能ファイルを再度実行すると(更新された可能性のあるバイナリが実行されます)、zygoteプロセスに自身の複製を要求し、コピーの1つが通常のレンダラープロセスになります。

18
Ash