web-dev-qa-db-ja.com

特定の時間にPCをサスペンドしてウェイクアップする

PCを毎日04:58にスリープ状態にし、05:15にスリープ状態に戻したい。

それ、どうやったら出来るの?

22
One Zero

Gnome Scheduleでこれを(少なくとも半分)実行できます。 (Sudo apt-get install gnome-schedule)(注意:gnome-scheduleと入力しても、Scheduled Tasksとしてランチャーに配置されます。持ち出します。)

起動後、「新規」->「繰り返しタスク」。必要に応じてフォームに入力します。

休止状態にするコマンドは/usr/sbin/pm-hibernate(一時停止は/usr/sbin/pm-suspend)です

再び目覚めることに関しては、 「冬眠からの目覚めをどのようにスケジュールしますか?」 をご覧ください。


または、「電源管理インターフェイス」をインストールできます。 (Sudo apt-get install powermanagement-interface

次に、次のようなスクリプトを作成します。

#!/bin/bash
# This script puts the system under standby mode for x hours
usage() {
echo "usage: $0 <n-hours>"
echo "where <n-hours> is the number of hours to be on standby"
exit 0

}
if [ $# -ne 1 ]
then
usage
fi

PATH=$PATH:/usr/sbin
hours=$1
echo 0 > /sys/class/rtc/rtc0/wakealarm
echo `date '+%s' -d "+ $hours hours"` > /sys/class/rtc/rtc0/wakealarm
## Edit the above line to get the exact length of hibernation you want
pmi action suspend

そして、ルートのcrontabでスケジュールします。

ソース

9
John

Linux PCを自動的にスリープから復帰させる方法

Linux PCをスリープモードまたは休止状態モードにして、特定の時間に自動的に起動させたいですか?これは、ほとんどのLinuxシステムにデフォルトで含まれているrtcwakeコマンドで簡単に実行できます。

これは、コンピューターに特定の時間に何かをさせたいが、24時間年中無休で実行させたくない場合に役立ちます。たとえば、コンピューターを夜間にスリープ状態にして、ダウンロードを実行する前に起動させることができます。

Rtcwakeを使用する

Rtcwakeコマンドにはルート権限が必要なため、Ubuntuおよびその他のUbuntu派生ディストリビューションでSudoを使用して実行する必要があります。 Sudoを使用しないLinuxディストリビューションでは、最初にsuコマンドでrootとしてログインする必要があります。

コマンドの基本的な構文は次のとおりです。

Sudo rtcwake -m [type of suspend] -s [number of seconds]

たとえば、次のコマンドはシステムをディスクにサスペンド(休止状態)し、60秒後にウェイクアップします:

Sudo rtcwake -m disk -s 60

サスペンドの種類

-mスイッチは、次のタイプのサスペンドを受け入れます。

standby–スタンバイはほとんど電力を節約しませんが、実行中のシステムへの復元は非常に高速です。これは、-mスイッチを省略した場合のデフォルトモードです。

mem– RAMにサスペンドします。これにより、電力を大幅に節約できます。RAMを除き、すべてが低電力状態になります。メモリの内容は保持されます。

disk–ディスクにサスペンドします。メモリの内容がディスクに書き込まれ、コンピューターの電源がオフになります。タイマーが完了すると、コンピューターの電源が入り、その状態が復元されます。

off–コンピューターの電源を完全に切ります。 rtcwakeのマニュアルページでは、「オフ」からの復元はACPI仕様では公式にはサポートされていないと記載されていますが、これはとにかく多くのコンピューターで機能します。

no–ウェイクアップ時間を設定するだけで、すぐにコンピューターを一時停止しないでください。たとえば、午前6時に起きるようにコンピューターに指示できます。その後、午後11時または午前1時に手動でスリープ状態にします。いずれにしても、午前6時に起動します。

秒と特定の時間

-sオプションは、今後数秒かかります。たとえば、-s 60は60秒でコンピューターを起動し、-s 3600は1時間でコンピューターを起動します。

-tオプションを使用すると、特定の時間にコンピューターを起動できます。このスイッチは、Unixエポック(1970年1月1日00:00:00 UTC)からの秒数を必要とします。正しい秒数を簡単に指定するには、dateコマンドとrtcwakeコマンドを組み合わせます。

-lスイッチは、ハードウェアクロックが現地時間に設定されていることをrtcwakeに伝え、-uスイッチは、ハードウェアクロック(コンピューターのBIOS )はUTC時間に設定されます。 Linuxディストリビューションは、多くの場合、ハードウェアクロックをUTC時間に設定し、それを現地時間に変換します。

たとえば、明日午前6時30分にコンピューターを起動させ、すぐにサスペンドしないようにするには(ハードウェアクロックが現地時間に設定されている場合)、次のコマンドを実行します。

Sudo rtcwake -m no -l -t $(date +%s -d ‘tomorrow 06:30’)

ヘルプ

17
One Zero

ウェイクアップイベント用にBIOSをセットアップしてみてください。ほとんどすべてのマザーボードにその機能があり、mbマニュアルを使用して理解できます。一部のAMI biosでは、Wake up by RTC alarm、これは、特定の時間にPCを起動する簡単な方法です

1
Prasad RD

だから誰かが興味を持っているなら、これは私が見つけたもので、何もインストールせずに、非ルートとして動作します。

次のコマンドコードを使用します。

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

それを遅らせるには、s m hまたはd(sec、min、day、hour)のいずれかで数字を指定し、aを付けてsleepコマンドを使用します。

サンプルコード:

sleep 60s; dbus-send --print-reply --system --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend

60秒後にコンピューターを一時停止します

0
AndyDaSilva52