はじめに
Linuxでrtcwakeコマンドを使えば、シャットダウン後に自動起動するように指定ができます。
起動のタイミングは、指定秒数後や、指定日時を指定できます。
なお、シャットダウン後に法定停電等で停電した場合は、停電から復旧していても、指定時刻にマシンが起動することはありません。
rtcwakeコマンドは起動時間の設定に、RTC(Real Time Clock)アラームを使用していますが、このアラームは電源が供給されている間しか機能しません。停電が発生すると、RTCアラームがリセットされるため、指定した時間にPCが起動できません。
また、RaspberryPiのように RTCが無い場合も、次のようなエラー表示が出て rtcwakeコマンドは使えません。
(2023.12.6時点で日本で一般販売されていませんが、RaspberryPi 5 はRTCが搭載されているので、おそらく rtcwakeが使えると思います)
rtcwake: /dev/rtc0: unable to find device: No such file or directory
準備
rootで以下を実行します。
CentOS7
hwclock --systohc --localtime --debug
CentOS7以外
hwclock --systohc --localtime --verbose
実行で、/etc/adjtime にファイルが存在しなかった場合は、ファイルが作成されます。
もともとあった場合は、更新されます。
上記コマンドでハードウェアクロックをローカルタイムに設定します。
参考:Ubuntu で起動直後だけ時刻が9時間ずれる – パソコン鳥のブログ
コマンド
以降のコマンドはrootで実行してください。
シャットダウン実行し、指定時刻にONする
シャットダウンし、指定秒数後に起動する場合です。
-s で指定した秒数後に、電源ONして起動してきます。下記例では、24時間後です。
rtcwake -m off -s 86400
シャットダウンし、指定日時に起動させる場合です。
–date に続けて、YYYYMMDDhhmmss の形式で指定します。
CentOS7 では –dateオプションが無いので、代わりに -tオプションで指定します。
CentOS7以外
rtcwake -m off --date 20231206150000
CentOS7
rtcwake -m off -t $(date +%s -d "2023-12-6 15:00:00")
シャットダウンせずに、ONする指定時刻だけを設定する
シャットダウンをせずに、起動させる時刻の設定だけ行う場合は、-m off の代わりに -m no を指定します。
rtcwake -m no -s 86400
rtcwake -m no --date 20231206150000
設定されている内容を確認します。
rtcwake -m show
次のように設定時刻が表示されます。
この後、マシンをシャットダウンしておくと、指定時刻にマシンがONされます。
アラーム: ON Thu Dec 6 15:00:00 2023
設定を無効化するには、次を実行します。
rtcwake -m disable
無効化した後に確認すると、設定はクリアされています。
# rtcwake -m show
アラーム: OFF
注意
rtcwake -m no で起動時刻だけ設定した後に、指定時刻前にマシンを再起動すると、設定がクリアされます。
その後、シャットダウンしても、意図していた時刻には起動してこないので、注意してください。
コメント