アカウント名:
パスワード:
流石に自分自身までは消せないらしく。稼働中プロセスは消せなくて、中途半端にファイルを削除されてしまって問題が後から発覚するパターンもあったりするでありますね……
UNIX系の(inode系の)ファイルシステムだと、オープンしているファイルも消せたかと。inodeと参照カウントで管理しているので、「ディレクトリエントリ」は消えても「オープンしているファイルディスクリプタからの参照」は残っているので特に問題なく、ファイルをクローズした時点で、参照カウントが0になって完全開放されます。だから、
% cp /bin/sh . ; ./sh -c '\ ./sh -c "ls ./sh"; \ rm -f ./sh; \ ./sh -c "ls ./sh"; \ echo ./sh is deleted\'./sh./sh: not found./sh is deleted
ぐらいのことはできます。
プログラムのバージョンアップでファイルを削除してから新バージョンをコピーすると、稼働中の旧バージョンは何事も無かったかのように動き続ける、というのは結構便利。これのおかげで、Windowsのような「バージョンアップ時に再起動が必要」ってことには滅多にならない。
#実は現在進行形で、GNU screen をバージョンアップしたらセッションの互換性がなくなって困ってるとこだったり。#しかたなく、バージョンアップ前から立ち上げていた、今はプログラムファイルの存在しない旧版screenを、立ち上げたままずっと使い続けてます@FreeBSD。
普段、UNIX系OSで再起動無しに上書きできる理由を意識した事がなかったため参考になります。
YouTubeにコマンドを走らせてみた動画を最近見ました。メインメモリ(RAM)上にあるプロセスは動いているけど、どこをクリックしても無反応とかありますね。
ちなみに最近の rm コマンドだと--no-preserve-root を付けないと期待した動作をしてくれません.
何その GNU 限定な話は?
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ研究家
rm -fr /すると (スコア:2)
/etc/init (いまどきなら/sbin/initなのかな)
/bin/sh
/bin/rm
の3ファイルとその親ディレクトリーだけ残った記憶が。
iida
Re:rm -fr /すると (スコア:1)
流石に自分自身までは消せないらしく。
稼働中プロセスは消せなくて、中途半端にファイルを削除されてしまって問題が後から発覚するパターンもあったりするでありますね……
Re:rm -fr /すると (スコア:2)
UNIX系の(inode系の)ファイルシステムだと、オープンしているファイルも消せたかと。
inodeと参照カウントで管理しているので、「ディレクトリエントリ」は消えても「オープンしているファイルディスクリプタからの参照」は残っているので特に問題なく、
ファイルをクローズした時点で、参照カウントが0になって完全開放されます。だから、
ぐらいのことはできます。
プログラムのバージョンアップでファイルを削除してから新バージョンをコピーすると、稼働中の旧バージョンは何事も無かったかのように動き続ける、というのは結構便利。これのおかげで、Windowsのような「バージョンアップ時に再起動が必要」ってことには滅多にならない。
#実は現在進行形で、GNU screen をバージョンアップしたらセッションの互換性がなくなって困ってるとこだったり。
#しかたなく、バージョンアップ前から立ち上げていた、今はプログラムファイルの存在しない旧版screenを、立ち上げたままずっと使い続けてます@FreeBSD。
Re:rm -fr /すると (スコア:1)
普段、UNIX系OSで再起動無しに上書きできる理由を意識した事がなかったため参考になります。
Re: (スコア:0)
YouTubeにコマンドを走らせてみた動画を最近見ました。
メインメモリ(RAM)上にあるプロセスは動いているけど、どこをクリックしても無反応とかありますね。
Re: (スコア:0)
ちなみに最近の rm コマンドだと
--no-preserve-root を付けないと期待した動作をしてくれません.
Re: (スコア:0)
何その GNU 限定な話は?