暂停然后唤醒:rtcwake的时间表,Beaglebone Black

时间:2018-08-09 00:31:52

标签: configuration beagleboneblack suspend wakeup

我正在尝试配置beaglebone黑色[无线版本-4.9.82-ti-r102#1 SMP PREEMPT]-运行debian 9.3 Stretch。

此命令在bash终端中可以正常工作:

sudo /usr/sbin/rtcwake -m mem -u -t $(date +%s -d "+2 minutes")

我已经通过

设置了cron作业
sudo crontab -e

其中有以下一行:

10,40 * * * * /usr/sbin/rtcwake -m mem -u -t $(date +%s -d "20 minutes")

但是,设备没有挂起。

我在做什么错?我该如何调试?

感谢您的帮助

M

2 个答案:

答案 0 :(得分:0)

好的, 如果还有其他人试图解决这个问题。我不知道为什么这行得通,但是行得通... 1.使用rtcwake comand编写脚本。...:

#!/bin/bash
# suspend then wake from a bash script
echo attempting to suspend!
/usr/sbin/rtcwake -m mem -u -t $(date +%s -d "1 minutes")

我将此唤醒睡眠称为“唤醒睡眠”,并将其放在/ usr / local / bin(在PATH中)上,使其可执行...

sudo chmod +x /usr/local/bin/sleepwake

然后在su版本的crontab中添加一行:

sudo crontab -e

在crontab根目录中添加的行具有以下格式:

10 * * * * /usr/local/bin/sleepwake

...,它可以工作。对于我来说,这是一个谜,为什么以前的方法不起作用,但是行得通。非常希望听到某人的两种方法之间的区别。

答案 1 :(得分:0)

%字符是crontab方法中的问题。该字符在crontab中具有特殊含义(换行符...标准输入法的开始,请参见手册)。

您可以使用-t $(date +%s -d "1 minutes")来睡眠60秒,而不必使用-s 60,而不用%。或者,您可以使用\%进行转义,或者使用'+%s'"+%s"

相关问题