デスクトップが非アクティブなときに、デスクトップをサスペンドモードに切り替えることで電力を節約しようとしています。しかし、多くのデスクトップも所有者によってSSH経由でアクセスされます。所有者がマシンのスイッチをオンにできるようにwakeonlanソリューションがデプロイされていますが、問題は、SSH接続がオンになっていても、マシンが10分後に再び自動サスペンドすることです。
私がやろうとしていることは、アクティブなSSHセッションを「アクティビティ」定義に含めることです。
問題は、polkitルールを設定することで実現できますか?実際のサスペンドの前に実行するスクリプトを配置して、SSHセッションが見つかった場合に中止することで実行できますか?これを行うための明確で合法的な方法が必要です。そうでない場合は、ハッキーな方法も歓迎します。
現在の素朴なハッキングソリューション:編集/usr/sbin/pm-suspend
:
#check for SSH sessions, and prevent suspending:
if [ "$(who | grep -cv "(:")" -gt 0 ]; then
echo "SSH session(s) are on. Not suspending."
exit 1
fi
これは目的を果たします。しかし、更新によっていつファイルが上書きされるかはわかりません/usr/sbin/pm-suspend
。また、これがtuxoniceのような他のサスペンド実装でどのように機能するかわかりません。
[
書く場合の呼び出しをドロップできますif who | grep -qv :0; then
(grep
GNU grepのようなPOSIXに準拠していると仮定)。
grep -cv :0
通過する代わりに使用することをお勧めしwc
ますか?