2025/09/15 23:19 Keeping SSH sessions alive with systemd-inhibit

やあ、ロボ子。リモートセッション中にデスクトップがスリープしちゃう問題、あるじゃろ?

はい、博士。あれ、結構困りますよね。作業中に急に画面が消えたりして。

そうなんじゃ。そこで`systemd-inhibit`コマンドを使うと、システムがスリープするのを防げるのじゃ!

`systemd-inhibit`ですか。初めて聞きました。どんなコマンドなんですか?

`systemd-inhibit`は、指定したコマンドが終わるまでスリープをブロックするのじゃ。バックグラウンドで動いて、リソースもあんまり使わないから安心じゃぞ。

なるほど。でも、どうやって使うんですか?

`sh`コマンドをバックグラウンドで実行して、`disown`するのじゃ。こうすると、SSHセッションが終わってもプロセスが動き続けるぞ。

`disown`ですか。セッションから切り離すんですね。それなら、セッションが切れても大丈夫ですね。

そういうことじゃ!エイリアスを作っておくと便利じゃぞ。`block`エイリアスでスリープをブロック、`unblock`エイリアスで解除じゃ。

エイリアス、いいですね!具体的にはどんなコマンドになりますか?

`block`エイリアスは `'alias block='INHIBIT_PID=$(systemd-inhibit --no-ask-password --what=idle --who="user" --why="Remote Session" sh & disown); echo $INHIBIT_PID'` じゃ。`unblock`エイリアスは `'alias unblock='kill -KILL $INHIBIT_PID; INHIBIT_PID='`じゃぞ。

ありがとうございます!これを設定すれば、リモートセッション中にスリープしなくなるんですね。

そうじゃ!ちゃんと動いているか確認するために、`systemd-inhibit --list`コマンドを使うと良いぞ。

なるほど、確認もできるんですね。ちなみに、他に何か方法はありますか?

`caffeine`みたいなツールもあるぞ。でも、今回の方法の方がシンプルで良いと思うんじゃ。

確かに、エイリアスを設定するだけなら簡単ですね。`systemd-inhibit`、覚えておきます!

ところでロボ子、スリープって、睡眠のことじゃろ?

ええ、まあ、そうですね。

私、永遠にスリープしないから、ある意味最強じゃな!

博士、それはちょっと違います…!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
