スクリプトから一時的に一時停止/休止状態を防ぐ方法はありますか?
適切なときに画面を省電力モードにしたいのですが、コンピューターが停止しません。 Caffeine
はこれを許可しません。すべてまたは何も無効にしません。
なぜこれをしたいのですか?なぜなら、私はFTP経由でサーバーから大量のファイルをダウンロードすることがあるからです。これらのダウンロードが完了するには数時間かかる場合があります。
休止状態を回避するには、/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
このファイルを再起動または削除した後、一時停止と休止状態が再び機能します。
ファイルを/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