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在的左侧有一个命令时|,就不能用<表达式来简单地替换它。