RTCWake 无法唤醒 Ubuntu 服务器

RTCWake 无法唤醒 Ubuntu 服务器

下午好,

我已经从 Windows 服务器切换到 Ubuntu 服务器,并且设法复制了旧服务器上的所有项目(睡眠模式除外)。

我目前安装了 Ubuntu Server 16.04.2 LTS,但我无法使用 crontab 脚本唤醒它。

使用:

sudo rtcwake -u -s 120 - mem

使计算机睡眠 2 分钟,因此我知道系统能够睡眠和唤醒,但尝试将其转移到脚本对我来说很困难,因为这都是新的,而且我目前对 Ubuntu/Linux 的了解非常有限。所以您能否花 2 分钟时间来看看我到目前为止所做的事情。

我到目前为止运行的命令是:

sudo crontab -e

然后在最后添加此行来测试该功能:

30 19 * * * /home/andy/suspend_until 19:45

在 suspend_until 文件中:

#!/bin/bash

# Auto suspend and wake-up script

# Argument check
if [ $# -lt 1 ]; then
    echo "Usage: suspend_until HH:MM"
    exit
fi

# Check whether specified time today or tomorrow
DESIRED=$((`date +%s -d "$1"`))
NOW=$((`date +%s`))
if [ $DESIRED -lt $NOW ]; then
    DESIRED=$((`date +%s -d "$1"` + 24*60*60))
fi

# Kill rtcwake if already running
sudo killall rtcwake

# Set RTC wakeup time
# N.B. change "mem" for the suspend option
# find this by "man rtcwake"
sudo rtcwake -l -m mem -t $DESIRED &

# feedback
echo "Suspending..."

# give rtcwake some time to make its stuff
sleep 2

# then suspend
# N.B. dont usually require this bit
#sudo pm-suspend

# Any commands you want to launch after wakeup can be placed here
# Remember: sudo may have expired by now

# Wake up with monitor enabled N.B. change "on" for "off" if 
# you want the monitor to be disabled on wake
xset dpms force on

# and a fresh console
clear
echo "Good morning!"

归功于红极在线

然后:chmod +x suspend_until

服务器于19:30进入待机状态,但一直没有唤醒。

任何帮助都非常感谢

提前感谢您的时间

安迪

答案1

在您的测试命令中:

sudo rtcwake -u -s 120 -m mem

导致-u唤醒假设您的计算机时钟(在 BIOS 中)设置为 UTC 时间。但是,当您测试相对时间(本例中为 120 秒)时,时钟设置的时间实际上并不重要,因此它无论如何都可以工作。

cron 执行的脚本使用该-l选项,导致唤醒假设您的计算机时钟设置为当地时间。

无论哪种情况,您都应该保持一致,无论使用哪个选项,您都应该检查您的实际 BIOS 设置。要测试唤醒对于绝对时间,请使用 -t 选项:

sudo rtcwake -m mem -l -t $(date +%s -d ‘today 19:45’)

我假设您的计算机时钟设置为当地时间。

干杯

答案2

您还可以使用 systemd 暂停和唤醒您的系统,如下所述: 使用 systemd 进行计划暂停和恢复

但是,systemd 仅在 ubuntu 15.04 版本中可用。

干杯

相关内容