rootとして実行してみましたが、うまくrtcwake
いきます。
root@ywt01-15Z90N-V-AR53C2:~# rtcwake -m mem -s 90
↑ コマンドが実行中です。
rtcwake
ただし、内部で実行しようとするとcrontab
機能しません。
- 開いている
crontab
:root@ywt01-15Z90N-V-AR53C2:~# crontab -e
- 編集する
crontab
:01 22 * * * /usr/sbin/rtcwake -m mem -s 90 > /root/rtc.log 2>$1
上記の手順で何を変更する必要がありますか?それとも別のステップがありませんか?
PS。私のオペレーティングシステム情報:
Distributor ID: Ubuntu
Description: Ubuntu 20.04.5 LTS
Release: 20.04
Codename: focal
答え1
スクリプトをどのように変更するのかわかりませんrtcwake
。少し奇妙だと感じる部分がたくさんあります:)
対照的に、systemd(Ubuntu 20.04のベース)を使用すると、システムが自動的に起動するタイマー操作を簡単に実行できます。それはまるでhttps://joeyh.name/blog/entry/a_programmable_alarm_clock_using_systemd/:
/etc/systedm/system/whatever_I_need_to_do_at_22_01.service
[Unit]
Description=Important thing that needs to happen 1 past 10
RefuseManualStop=true
RefuseManualStart=true
# Requires=multi-user.target or whatever you want to sure runs!
[Service]
Type=oneshot
ExecStart=/usr/bin/true
/etc/systedm/system/whatever_I_need_to_do_at_22_01.timer
[Unit]
Description=Important timer
[Timer]
Unit=whatever_I_need_to_do_at_22_01.service
OnCalendar=*-*-* 22:01
WakeSystem=true
Persistent=false
[Install]
WantedBy=multi-user.target
その後、sudo systemctl enable --now whatever_I_need_to_do_at_22_01.timer
指定した時間に目を覚ますように設定します。
眠りにつくにはを使用してくださいsystemctl suspend
。systemd-suspend.service
特定の時間に一時停止したい場合は、タイマーを呼び出すこともできます!
答え2
このスレッドを参照してください(rtcwakeはルートクローンジョブとして実行されません。)答えを得るためにrtcwake
。私の場合、s cronを使用しているにもかかわらず、次のsudo
コマンドを追加する必要がありました。cron
root
30 14 * * * sudo /usr/sbin/rtcwake -m mem -l -t $(date +\%s -d 'today 17:55:00') >> /home/user/crond.log 2>&1
修正がsystemd
過度すぎたようです。