我使用的是 Fedora 13,为了自动关闭和重新启动,我们有以下命令:
# shutdown -h/-r now
同样,如果我想让系统在一段时间后进入挂起模式,我应该使用什么命令?
答案1
Unix 的理念是拥有执行一项工作的工具,以及将它们结合起来的 shell。因此,我们将把挂起命令与稍后执行命令结合起来。我不知道 Fedora 上挂起的标准命令是什么(有几个);我将使用pm-suspend
Ubuntu 上的常用命令。
X 秒后暂停:sleep X && pm-suspend
在给定时间暂停:echo pm-suspend | at HH:MM
答案2
该pm-suspend
实用程序(包含在pm-utils包并且可能已经安装在您的计算机上)用于将您的计算机发送到挂起模式。因此,要“立即”暂停,您可以运行(以 root 身份或使用 sudo):
# pm-suspend
不幸的是,据我所知,pm-suspend 并不需要时间参数。但是,您可以编写一个带有时间参数的包装器脚本。将脚本保存在 $PATH 中的某个位置并 chmod +x 它。不要称其为“暂停”。一个简单的可能如下所示:
#!/bin/sh
#change this following line to wherever pm-suspend lives
suspend="/usr/sbin/pm-suspend"
#make sure we are root
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
if [ -z "$1" ]; then
echo "mysuspend: time in seconds expected"
exit 1;
elif [ "$1" = "now" ]; then
echo "Suspending now!"
wait="0"
else
#make sure we get a number.
echo "$1" | grep [a-zA-Z] > /dev/null
if [ $? -ne 0 ]; then
echo "Suspending in $1 seconds"
wait="$1"
else
echo "mysuspend: time in seconds expected"
exit 1
fi
fi
sleep "$wait"
$suspend
警告:除了“对我有用”之外,我还没有对此进行过测试。
您可以考虑将挂起命令更改为 pm-suspend-hybrid ,这也会保存休眠文件,以防挂起时电量耗尽。
您可能感兴趣的或可以使您的脚本更加健壮的其他实用程序是 pm-hibernate、pm-is-supported。
答案3
如果您没有方便的 pm-suspend 命令,并举20:30
个例子:(将其替换为当您想要挂起(或唤醒)时,例如tomorrow 1:00
也可以)
sleep $(($(date --date "20:30" +%s) - $(date +%s)))
&& 回显内存 > /sys/power/state
相关的,你还可以告诉机器什么时候醒来:
rtcwake -m mem -s $(($(date --date "20:30" +%s) - $(date +%s)))
有时它会失败,所以这样效果更好:
while sleep 1; do rtcwake -m mem -s $(($(date --date "20:30" +%s) - $(date +%s))) && break; done
要改为休眠,只需在这两个命令中使用disk
not 即可。mem
这些命令将在 bash 上运行。在更原始的 shell 上,只需使用``
(反引号) 代替并将$( )
放在.$
$(( ))