どうやってapt-get remove xterm
行くの?そして、アンインストールした後、xterm
閉じずに正常に機能し続けます。
されxterm
、それが実行されている一方で、プロセスは、RAMにキャッシュされましたか?
どうやってapt-get remove xterm
行くの?そして、アンインストールした後、xterm
閉じずに正常に機能し続けます。
されxterm
、それが実行されている一方で、プロセスは、RAMにキャッシュされましたか?
回答:
そうでもない。ファイルはすでにプログラムによって開かれています。ファイルを削除(および別のバージョンに置き換え)しても、プログラムが完了するまで元のファイルは開いたままになります(ただし、ディスク上に再度開く名前はありません)ので、実行中のプログラムには影響しません。ファイルに対するすべてのハンドルが閉じられた場合にのみ、ディスク上のデータブロックが解放されます。それまでは、開いているファイルは通常と同じように読み書きできます。唯一の変更点は、名前が削除されたため、誰も開くことができないことです。
プログラムの一部は、削除されたときにすでにRAMに読み込まれている可能性がありますが、破棄されて後で再読み込みされるか、以前に実行されなかったプログラムの新しい部分が削除されたファイルから読み込まれます。
rm -rf /
作品.....
rm -rf /
その後すぐに2回実行しようとしても機能しません;)
lsof
出力で「/ some / file / name(deleted)」を見たことがありますが、それが「ゾンビ」ファイルのように見えますが、そのようなファイルの内容が消えないように保存する方法はありますか?最後のファイルハンドルが死んだとき?
root
、linkat
システムコールを使用して、ファイルハンドルの名前を作成することができます(したがって、削除を防止できます)。ただし、実行可能ファイルとライブラリはメモリマップされているため、ファイルハンドルは不要です。メモリマップされているためにのみ存在するファイルのハンドルを取得する方法を知りません。実行可能ファイルは実行/proc
中にアクセスできますが、回復できない可能性があるのはライブラリと他のメモリマップファイルのみです。詳細については、別の質問としてお尋ねください。
され
xterm
、それが実行されている一方で、プロセスは、RAMにキャッシュされましたか?
まさに。実行中にクラッシュすることなく更新をインストールできるプロセスに似ています。また、サービスの更新後にサービスを再起動する必要がある理由。何かが実行されると、そのバイナリはメモリ内にあります。
削除または置換される他のファイル(保持された「開いた」状態ではない)に依存している場合、問題が発生する可能性がありますが、のような個別の問題は問題xterm
ではありません。
apt-get
インストールするのxterm
ではなく、アンインストールするのであり、xterm
プロセスに何らかの形で依存していることはわかりません。そのため、「実行中にxtermをアンインストールできるのはなぜですか」。いい質問です。