看来我可以sudo shutdown
通过指定时间或分钟来关闭。
有没有办法指定关闭的日期时间?
答案1
您可以直接从 执行此操作shutdown command
,请参阅man shutdown
:
SYNOPSIS
/sbin/shutdown [-akrhPHfFnc] [-t sec] time [warning message]
[...]
time When to shutdown.
因此,例如:
shutdown -h 21:45
shutdown -h
将于 21:45运行。
对于不提供此功能的命令,您可以尝试以下方法之一:
A. 使用于
这at
守护进程正是为此而设计的。根据您的操作系统,您可能需要安装它。在基于 Debian 的系统上,可以通过以下方式完成:
sudo apt-get install at
可以通过三种方式向 发出命令at
:
管道它:
$ echo "ls > a.txt" | at now + 1 min warning: commands will be executed using /bin/sh job 3 at Thu Apr 4 20:16:00 2013
将要运行的命令保存在文本文件中,然后将该文件传递到
at
:$ echo "ls > a.txt" > cmd.txt $ at now + 1 min < cmd.txt warning: commands will be executed using /bin/sh job 3 at Thu Apr 4 20:16:00 2013
您还可以
at
从 STDIN 传递命令:$ at now + 1 min warning: commands will be executed using /bin/sh at> ls
然后,按CtrlD退出
at
shell。该ls
命令将在一分钟内运行。
您可以以 的格式给出非常精确的时间[[CC]YY]MMDDhhmm[.ss]
,如
$ at -t 201403142134.12 < script.sh
script.sh
这将在 2014 年 3 月 14 日 21:34 12 秒运行脚本。
B. 使用 cron(尽管这对于关闭来说不是一个好主意)
另一种方法是使用cron
旨在在特定时间执行任务的调度程序。它通常用于将重复的任务,但您也可以给出特定的时间。每个用户都有自己的“crontab”,用于控制执行哪些作业以及何时执行。 crontab 的一般格式是:
* * * * * command to be executed
- - - - -
| | | | |
| | | | +----- day of week (0 - 6) (Sunday=0)
| | | +------- month (1 - 12)
| | +--------- day of month (1 - 31)
| +----------- hour (0 - 23)
+------------- min (0 - 59)
例如,这将ls
在每天 14:04 运行:
04 14 * * * ls
要为特定日期设置 cronjob:
通过运行创建一个新的 crontab
crontab -e
。这将打开您最喜欢的文本编辑器的窗口。将此行添加到刚刚打开的文件中。如果当天是星期五,此特定示例将在 2014 年 3 月 15 日 14:34 运行(因此,好吧,它可能会运行多次):
34 14 15 5 /path/to/command
保存文件并退出编辑器。
这所以答案建议了一种让它只运行一次的方法,但我从未使用过它,所以我不能保证它。
答案2
不,您不能在关闭命令中指定日期,但存在两种选择:
- 最简单的是使用at 命令。以下示例将
shutdown +5
在特定时间和日期执行:echo "shutdown +5" | at 10:05am 2019-01-19
- 如果您不介意使用计算器并希望在 24 小时(24×60=1440 分钟)内关机,并且您绝对确定系统不会在这期间重新启动:
shutdown +1440
答案3
它将在 12:00 关闭您的系统:
$ sudo shutdown -h 12:00
选项:
-h, -P, --poweroff
关闭机器电源。
-r, --reboot
重新启动机器。
-c
取消待处理的关闭。
答案4
如果您想立即关闭机器,您可以输入终端
$ shutdown -P -h now
有了“现在”的论点。无论如何,计算机不会停止。