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


回答:


9

Gnome Scheduleを使用して(少なくとも半分)実行できます。(sudo apt-get install gnome-schedule)(注:gnome-scheduleを入力しても起動されますがスケジュールされたタスクとしてランチャーに配置されます。)

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

休止状態にするコマンドは/usr/sbin/pm-hibernate(Suspend is /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でスケジュールします。

ソース


19

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

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

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

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スイッチは、一時停止、次のタイプを受け入れます:

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

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

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

オフ -コンピューターの電源を完全にオフにします。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スイッチは、-uスイッチが(コンピュータのBIOSでの)ハードウェアクロックがUTC時刻に設定されていることrtcwakeを伝えながら、ハードウェアクロックは、現地時間に設定されていることrtcwakeを伝えます。Linuxディストリビューションは、多くの場合、ハードウェアクロックをUTC時間に設定し、それをローカル時間に変換します。

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

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

助けて


1
この質問には素敵なrtcwakeの記事があります。それは完全なソリューションを提供しています: askubuntu.com/questions/61708/...
ガール

6
あなたがコピーしたときに、ウェブサイトの弾力から貼り付けてください少なくともURL:howtogeek.com/121241/...
hanoo

rtcwakeは複数のインスタンスを記憶できないようですが、たとえば、1時間ごとにコンピューターを起動させるにはどうすればよいですか?
ヤンキングイン

1

ウェイクアップイベント用にBIOSを設定してみてください、ほとんどすべてのマザーボードにその機能があり、mbマニュアルを使用してそれを把握します特定の時間にPCを起動する


0

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

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

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

それを遅らせるには、shmまたは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秒後にコンピューターを一時停止します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.