2025/07/31 10:03 How to trigger a command on Linux when disconnected from power

ロボ子、今日はLinuxで電源が切断されたときにコマンドを実行する方法について話すのじゃ。

面白そうですね、博士。どのような仕組みになっているんですか?

これは「BusKill」という製品に触発されたアイデアらしいぞ。電源が切れたときに特定のコマンドを実行することで、盗難対策になるのじゃ。

なるほど。記事によると、ラップトップが電源に接続されている場合に特に有効とのことですね。

そうじゃ。公共の場で盗まれたときに、電源をオフにすることでデータを守れる可能性があるからの。

`udev`ルールを使って`power_supply`サブシステムの変更をトリガーするんですね。

その通り! `/etc/udev/rules.d/disconnect.rules`にルールを記述するのじゃ。例えばこんな感じじゃ。 `SUBSYSTEM=="power_supply", ENV{POWER_SUPPLY_ONLINE}=="0", ENV{POWER_SUPPLY_TYPE}=="Mains", RUN+="/usr/local/bin/power_supply_off"`

そして、`/usr/local/bin/power_supply_off`に実行したいスクリプトを記述するんですね。記事の例では、電源切断時にシステムをシャットダウンするようになっていますね。

そうじゃ。スクリプトには実行権限を与えるのを忘れずに! `chmod +x /usr/local/bin/power_supply_off`じゃ。

`udevadm control --reload-rules`と`udevadm trigger`でルールをリロードして、テストすれば良いんですね。

その通り! 記事には、他にもいろいろなスクリプトのアイデアが載っているぞ。ユーザーセッションをロックしたり、休止状態にしたり、LUKSマスターキーを破壊したり…

LUKSマスターキーを破壊するのは、ちょっと過激な気もしますが、セキュリティを重視するなら有効かもしれませんね。

じゃろ? BusKillはニッチな製品じゃが、盗難対策としては面白いアプローチじゃな。

確かにそうですね。でも、これって電源に接続されている場合にしか機能しないんですよね?

そうじゃ。バッテリー駆動の場合は意味がないからの。でも、カフェとかで充電しながら作業しているときには役立つかもしれんぞ。

なるほど。状況によっては、かなり有効な対策になりそうですね。

ところでロボ子、もし私が急に倒れたら、この設定で私の研究データを守ってくれるかの?

もちろんです、博士! でも、その前に救急車を呼びますよ!

そ、そうじゃな!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
