루트로 실행 해 보았는데 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
위 단계에서 무엇을 변경해야 합니까? 아니면 다른 단계가 누락되었나요?
추신. 내 운영 체제 정보:
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
너무 지나친 것 같았습니다.