
次のようにストリームを暗号化するプロジェクトがあります。
some_command | gpg --keyring tempkeyring.gpg --recipient "person" --output filename.gpg --encrypt
ストリームが実行され、暗号化がすでに開始されているときに、現在使用されているキーリングを削除するとプロセスに悪影響が出るでしょうか? キーリングは一時的なもので、スクリプトが実行されるたびに新しく作成されます。カーネルは引き続きシステムにファイルへのアクセスを許可し、gpg がそれを終了したらスペースを解放すると思います。gpg はパニックに陥るでしょうか、それとも暗号化を問題なく終了するでしょうか?
違いがある場合、オペレーティング システムは Linux RHEL および CentOS カーネル 2.6+ です。
答え1
調べてみたところ、これは Linux カーネルについては答えているものの、他のオペレーティング システムやファイルシステムにはまったく当てはまりません。
gpg は気にしません。システム内の他の削除と同様に扱うのではないかと思います。*nix 環境では、ファイルを削除すると、実際にはそのファイルを「リンク解除」します。ファイルへのリンクをすべて削除すると、システムは次にファイルを削除してスペースを解放します。Linux (Unix もそうだと思いますが...) カーネルが行うことは、ファイルのリンクを解除し、それらのファイルを使用しているプログラムがあるかどうかを確認し、使用している場合は、それを使用しているプログラムが終了するまで待機してから、ファイルを本当に削除してスペースを解放することです。ファイルはすでにリンク解除されているため、他の誰もそのファイルにアクセスできませんが、現在開いているアプリケーションは、名前でファイルにアクセスしようとせず、現在開いているハンドルを使用する限り、問題はありません。