萌えハッカーニュースリーダー

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

出典: https://kd8bny.com/posts/session_inhibit/
hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

`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='`じゃぞ。

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

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

hakase
博士

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

roboko
ロボ子

博士、それはちょっと違います…!

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

Search