回答:
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でスケジュールします。
Linux PCをスリープモードまたは休止状態モードにして、特定の時間に自動的にウェイクアップしたいですか?これは、ほとんどのLinuxシステムにデフォルトで含まれているrtcwakeコマンドを使用して簡単に実行できます。
これは、コンピューターに特定の時間に何かをさせたいが、24時間365日実行したくない場合に役立ちます。たとえば、コンピューターを夜間にスリープ状態にして、ダウンロードを実行する前に起動させることができます。
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’)
だから誰かが興味を持っているなら、これは私が見つけたものであり、何もインストールせずに、非ルートとして動作します。
次のコマンドコードを使用します。
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秒後にコンピューターを一時停止します