如何在 Linux 上安排重启?

jld*_*ger 38 linux scheduled-task

我希望能够在特定时间安排服务器重启,但不是定期重启。如何在不添加和删除 cron 条目的情况下执行此操作?

Jos*_*ved 77

如果是一次性交易,您可以使用带 -r 作为参数的关闭命令。您可以添加时间作为参数(例如shutdown -r 12:30),而不是现在使用关闭。

  • 这也适用于清晨的时间 - 因此,如果现在是 15:55,您可以使用“shutdown -r 03:15 &”在明天凌晨 3:15 重新启动服务器。('&' 将命令分流到后台,因此您可以在不终止关闭命令的情况下注销) (12认同)
  • 重新启动需要 -r 标志(例如 shutdown -r 12:30) (10认同)
  • -r 至关重要,否则您将在某处按下电源按钮将其恢复。 (6认同)
  • 这是真的,我在初始答案中忘记了 -r。:( 对不起。 (2认同)
  • 这样做的优点/缺点(取决于您的用例)每小时左右通过即将重启的广播消息提醒所有人。 (2认同)

For*_*Man 17

根据手册页:/sbin/shutdown [-t sec] [-arkhncfFHP] time [warning-message] 位于 --> http://unixhelp.ed.ac.uk/CGI/man-cgi?shutdown+ 8

大量选项可供选择,但可以回答您的问题。

5 分钟后重启:/sbin/shutdown -r 5 "reboot in 5 minutes"

在晚上 11:00 重新启动: /sbin/shutdown -r 23:00 "rebooting at 11:00 PM"

注意:您的消息将被广播到所有活动的终端/会话。


ego*_*gry 8

at命令是你想要的。

at 5:00pm 
do
cd /
/full/path/to/init 6
done
Run Code Online (Sandbox Code Playgroud)

at -l 将列出 at cmds

  • 我会使用 `shutdown` 而不是 `init`。没有必要执行 `cd` 或 `do`/`done`(这可能会产生错误)。 (5认同)

Omr*_*mry 6

我能想到的最简单的方法是:

# sleep 2h && reboot
Run Code Online (Sandbox Code Playgroud)

以 root 身份运行它。