コンパイルジョブの完了中に GNOME がサスペンドしないようにするにはどうすればよいですか

コンパイルジョブの完了中に GNOME がサスペンドしないようにするにはどうすればよいですか

私は自分のマシン用にカスタム カーネルを構築しようとしていますが、構築に長い時間がかかります (予想どおり)。コンパイルが完了するまで GNOME デスクトップがマシンをサスペンドしないようにし、その後サスペンドさせることは可能ですか (通常かかる 30 分間マシンから離れていると仮定)。

サスペンドを永久に無効にしたいわけではなく (システム設定コントロール パネルから簡単に実行できますが、電力が浪費されます)、コンパイル ジョブを (PID 経由で?) 指定し、完了時にコンピューターをサスペンドできるようにしたいのです。

答え1

非アクティブタイムアウトを完全に無効にすることができます。

例えばAC電源のみのサスペンドタイムアウトを無効にするには、次のコマンドを実行します。

gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0

個人的には、AC 電源を使用しているときに、コンピューターをサスペンドするための非アクティブ タイムアウトがデフォルトで設定されていて、一般のユーザーがこれを無効にするオプションがないのは完全に愚かだと思います。

答え2

今は詳細を語る時間がありませんが、GNOME 電源マネージャの FAQ "アプリケーションでコンピュータの自動サスペンドを停止するにはどうすればいいですかInhibit()これは、およびUnInhibit()DBus 呼び出しを指します。

警告: 呼び出しプロセスInhibit()が終了した場合、抑制は終了します -dbus-sendシェルスクリプトではうまくいかないただし、何らかのラッパー スクリプト (Python など) が必要です。

編集 このブログ投稿もう少し詳しい情報と、役に立つかもしれない Python スタブが含まれています。

答え3

GNOME は、この問題に対する巧妙な解決策をユーティリティの形で開発しましたgnome-session-inhibit。これを使用するには、次のように、長時間実行されるコマンドの前にこれを追加するだけです。

gnome-session-inhibit make

必要に応じて、複数の禁止セッションを同時に実行することができます。これらのセッションは、 を実行することで一覧表示できますgnome-session-inhibit -l。詳細については、マニュアルページ

答え4

1 時間の空のビデオ ファイルを生成し、MPRIS2 をサポートするプレーヤーで再生します。長さの異なる一連の「ビデオ」を生成し、それらをプレイリストにキューして、必要な禁止時間を取得できます。

禁止期限を過ぎる可能性のあるプロセスは認識されませんが、プロセスにかかる時間を大まかに知っていれば、おそらく大まかに見積もることができます。

あるいは、「マウス ジグラー」と呼ばれる安価なデバイスを購入することもできます。ワイヤレス マウス レシーバーのように見えますが、時々揺れるマウスをシミュレートします。一部のモデルには、機能を切り替えるボタンがあります。

関連情報