web-dev-qa-db-ja.com

スクリプトから一時的にサスペンド/ハイバネートするのを防ぎますか?

スクリプトから一時的に一時停止/休止状態を防ぐ方法はありますか?

適切なときに画面を省電力モードにしたいのですが、コンピューターが停止しません。 Caffeineはこれを許可しません。すべてまたは何も無効にしません。

なぜこれをしたいのですか?なぜなら、私はFTP経由でサーバーから大量のファイルをダウンロードすることがあるからです。これらのダウンロードが完了するには数時間かかる場合があります。

7
Juan Simón

休止状態を回避するには、/var/run/do-not-hibernateを作成します。

Sudo touch /var/run/do-not-hibernate

ファイル/usr/lib/pm-utils/sleep.d/000kernel-changeがこれを機能させます。サスペンドを無効にする必要がある場合は、/etc/pm/sleep.d/000_prevent_suspend_hibernateと言う新しいファイルを作成します。

#!/bin/sh
# Prevents the machine from suspending or hibernating when
# the file /var/run/do-not-hibernate-or-suspend exist
case "$1" in
  suspend|hibernate)
    [ -f /var/run/do-not-hibernate-or-suspend ] && exit 1
    ;;
esac

実行可能にする:

Sudo chmod +x /etc/pm/sleep.d/000_prevent_suspend_hibernate

マシンがサスペンドまたは休止状態になるのを防ぐ必要がある場合は、ファイルを作成します。

Sudo touch /var/run/do-not-hibernate-or-suspend

このファイルを再起動または削除した後、一時停止と休止状態が再び機能します。

6
Lekensteyn

ファイルを/etc/pm/sleep.dに追加するだけです。このファイルでは、サスペンドを許可するかどうかを確認します。そうでない場合は、単にexit 1で終了します。

例えば:

tmp_start=...
tmp_stop=...

if [ $((tmp_stop)) -gt $((current_date)) -a $((tmp_start)) -lt $((current_date)) ]; then
    logger $0: Currently RECORDING. No Suspend!
    exit 1;
fi
0
JPT