我通过阅读如何在命令行中挂起/休眠系统?,找到了如何使用命令行挂起/休眠系统的方法。
不过,我想知道如何在特定时间(例如晚上11点)或相对时间(例如30分钟后)使用命令行来挂起/休眠系统。
我已经知道如何使用关机命令来实现这一点,但不确定是否类似。
不过,我想知道如何在特定时间(例如晚上11点)或相对时间(例如30分钟后)使用命令行来挂起/休眠系统。
我已经知道如何使用关机命令来实现这一点,但不确定是否类似。
at
命令来安排任何操作,包括运行那个问题中详细说明的命令。echo 'pmi action hibernate' | at now + 30 min
或者如果你想在晚上11点暂停:
echo 'pmi action suspend' | at 11pm
如果您需要以root身份运行命令,请使用sudo运行at,而不是直接使用sudo运行命令本身(因为sudo只应在交互式环境下运行,除非您已配置不要求输入密码)。例如,使用pm-hibernate和pm-suspend的等效命令如下:sleep
命令来使挂起/休眠命令等待。
等待30分钟,然后暂停:
sudo sleep 30m; sudo pm-suspend
sudo sleep 1h; sudo pm-hibernate
sudo "sleep 1h; pm-hibernate"
,这样就不需要再次调用sudo了。 - ChristophKcrontab -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
echo 'pmi action suspend' | at 11pm
cron
是一个很好的解决方案,当目标是在特定时间暂停或休眠,或者在一周、一个月或一年中的特定时间暂停或休眠时。但是对于调度单个暂停或休眠,这似乎是Ederico所问的问题(这是一个更有意义的要做的事情),应该使用at
命令。(您可以通过编辑相关的crontab来使用cron
调度单个事件,例如使用sed
或awk
,但这非常复杂和不必要; 使用at
即可。) - Eliah Kaganat
的信息,但是你添加的信息不正确。<
运算符将右边指定的文件或设备的文本重定向到左边指定的命令的标准输入。如果你想使用<
而不是|
(就像我的答案中所示),你需要创建一个以pmi action suspend
(或pmi action hibernate
)为内容的文件。这样的复杂性使得在这里使用|
更好。 - Eliah Kagancat
命令在|
的左边时(例如cat foo | bar
),你可以用一个<
表达式来替换它(bar < foo
)。但是,当你的命令中echo
命令在|
的左边时,这就不能简单地用一个<
表达式来替换了。 - Eliah Kagan
atrm
命令用于删除由at
创建的作业。 - Eliah Kagan