当前位置: 首页>>技术问答>>正文


如何从命令行休眠/暂停,并在特定时间执行此操作

, , , ,

问题描述

我设法通过读取How can I suspend/hibernate from command line?找到如何从命令行暂停/休眠系统。

但是,我想知道如何使用命令行在给定时间暂停/休眠,绝对(例如,11PM)或相对(例如,30分钟)术语。

我已经知道如何使用shutdown来执行此操作,但我要确定命令是否相似。

最佳解决方案

您可以使用at命令来安排任何操作,包括运行that question中详细说明的命令。

例如,如果要在30分钟内休眠:

echo 'pmi action hibernate' | at now + 30 min

或者如果你想在晚上11点暂停:

echo 'pmi action suspend' | at 11pm

如果需要以root运行命令,请使用sudo运行at,而不是使用sudo运行命令(因为sudo应该只能以交互方式运行,除非您已将其配置为不要求输入密码)。例如,使用pm-hibernatepm-suspend的上述命令的等价物是:

echo pm-hibernate | sudo at now + 30 min

echo pm-suspend | sudo at 11pm

次佳解决方案

对于相对规范(例如“30分钟后”),您只需使用sleep命令使挂起/休眠命令等待。


例子:

等待30分钟,然后暂停:

sudo sleep 30m; sudo pm-suspend

等待1小时,然后休眠:

sudo sleep 1h; sudo pm-hibernate

第三种解决方案

对于重复的特定时间 – 例如关闭计算机是每天的特定时间。用cron。

crontab -e

添加以下内容:

15 14 1 * * pmi action suspend

如果你想自定义它。

* * * * * command to be executed
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)

对于一次性工作我们at at命令

例如,如果要在30分钟内休眠:

echo 'pmi action hibernate' | at now + 30 min

或者如果你想在晚上11点暂停:

echo 'pmi action suspend' | at 11pm

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/6232.html,未经允许,请勿转载。