Answers:
您可以使用at
命令安排任何操作,包括运行该问题中详细介绍的命令。
例如,如果要在30分钟内休眠:
echo 'pmi action hibernate' | at now + 30 min
或者,如果您想在晚上11:00暂停:
echo 'pmi action suspend' | at 11pm
如果您需要为运行命令root
,运行at
与sudo
而不是命令本身的sudo
(因为sudo
只应交互运行,除非你已经配置它不询问您的密码)。例如,使用pm-hibernate
和的上述命令的等效项pm-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
pm-hibernate
,再次需要root用户的密码并不会挂起。
对于特定的时间重复一次-就像关闭计算机一样,每天都是特定的时间。使用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命令
例如,如果要在30分钟内休眠:
echo 'pmi action hibernate' | at now + 30 min
或者,如果您想在晚上11:00暂停:
echo 'pmi action suspend' | at 11pm
cron
当目标是在一天中的特定时间或一周,某月或某年的特定时间的特定时间挂起或休眠时,使用是一个很好的解决方案。但是,对于调度单个暂停或休眠(这似乎是Ederico所要问的(并且这样做更有意义)),at
应使用命令。(您可以cron
通过使事件编辑相关的crontab 来安排单个事件,例如使用sed
或awk
,但这非常复杂且不必要;请使用at
。)
cat
在|
(例如cat foo | bar
)的左侧有一个命令时,可以将其替换为<
表达式(bar < foo
)。但是,当您echo
在的左侧有一个命令时|
,就不能用<
表达式来简单地替换它。