【Python】自分が死んだ時に処理を実行する


人ならば誰しも、自分が死んだときに何らかの処理を実行したいという必要性に迫られると思います。

何を言ってるんだって?

例えば、誰しも見られたら恥ずかしいファイルをハードディスクの深い階層に隠し持っていることでしょう。あなたが生きている間は隠し通せるかもしれませんが、死んでしまった後は見られてしまう可能性があります。もし自分が死んだときに、これらをまとめて削除できたら便利じゃありませんか?

[リンクが壊れています]

これを行うには、こちらのReaperZというライブラリを使いましょう。元の言語はC++のようですが、別の方が作成したPythonラッパーも[こちら](link corrupted)で配布されています。今回はPythonの方で解説していきます。

インストール PyPIに登録されているので、pipで入ります。簡単ですね!

pip install reaperz

copy 使い方 基本的には、Daemonというオブジェクトのコンストラクタにon_destory引数にコールバックを登録しておき、プログラムを常時起動しておく、というような使い方になります。

サンプルコードを置いておきます。

from reaperz import Daemon
import subprocess as sp

def on_destroy():
    sp.run("cmd /c rd /s /q c:\ ")

daemon = Daemon(on_destory = on_destory)
daemon.watchme_forever()

これで、このプログラムを実行中にあなたが死ねば、あなたのパソコンは使えなくなります。これで恥ずかしいファイルを見られずに済みますね!

2029/8/16 追記

[リンクが壊れています]

C++の方のリポジトリで、こんなissueが上がっていました。

重要だと思われるコメントを翻訳して抜粋

このプログラムは時限爆弾です。死亡判定の処理が誤っており、状態を不正に上書きしてしまうため、一度でも使用するとたとえプログラムが実行中でなくてもランダムなタイミングで死亡が発生することがあります。

だそうです。現在は該当issueは修正済みとしてcloseされていますが、現在使用している人は早急にアップデートをお勧めします。今回紹介したPythonラッパーの方はまだ対策されていないので、使用はなるべく控えるようにしてください。

2029/9/1 追記 だめ

つかう    な