web-dev-qa-db-ja.com

コンパイルジョブの終了中にGNOMEが中断しないようにするにはどうすればよいですか?

自分のマシン用にカスタムカーネルを構築しようとしていますが、構築に時間がかかります(予想どおり)。コンパイルが完了するまでGNOMEデスクトップがマシンを一時停止するのを停止してから、一時停止することはできますか(通常、30分間マシンから離れていると仮定します)。

サスペンドを永続的に無効にしたくありません(システム設定のコントロールパネルから簡単に実行できますが、電力を浪費します)が、コンパイルジョブを指定して(PID?)、終了時にコンピューターをサスペンドさせることができます。

7
davefiddes

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

たとえば、AC電源に対してのみサスペンドタイムアウトを無効にするには、

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

私は個人的に、AC電源がオンのときにコンピュータを一時停止するための非アクティブタイムアウトがデフォルトであり、通常の人がこれを無効にするオプションがないという完全に愚かなことだと思います。

4
Guss

Makeコマンドをシェルでラップして、gnomeの自動一時停止機能を一時的に無効にすることができます。

まず、コマンドラインから自動一時停止をアクティブ化/非アクティブ化する方法を見つける必要があります。これはおそらくgconftool-2を介して実行できます。 gconf-editorを使ったちょっとした調査とハッキングが役立つはずです(私はそれに関して本当に助けることはできません、私はgnomeを使用しません)。

次に、これをシェルの関数でラップします。

disable_autosuspend()
{
    ...
}

enable_autosuspend()
{
    ...
}

その後、次のラッパーを使用します。

test -z $MAKEPRG && export MAKEPRG=$(which make)
make()
{
    disable_autosuspend
    $MAKEPRG $@
    enable_autosuspend
}

MAKEPRG変数は、実際のメーカーへのパスを保持するためにここにあります。 rcファイルをリロードする場合のテストはここにあります。

コンパイルが停止した直後にdbusを介して一時停止することもできます。

dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend
0
user48678