如何安排每晚重新启动?


81

我在运行特定的应用程序XBMC时遇到一些周期性问题。如果我定期使用XBMC,似乎没有任何问题,但是如果我无人看管超过12个小时,则需要重新启动才能使其再次运行。

我知道计划的重新启动不是解决问题的办法,但是直到我找出问题为止,我需要每天早晨安排一次重新启动,以便我的妻子可以在我不在时使用它,并且不会被扔出窗户:)

有参加者吗?

Answers:


133

我将使用cron(应该已经安装):

编辑crontab:

sudo crontab -e

第一次可能需要选择首选编辑器(如nano),

插入一行

0 4   *   *   *    /sbin/shutdown -r +5

在底部。说明:

m      h    dom        mon   dow       command
minute hour dayOfMonth Month dayOfWeek commandToRun

所以这条线

  0 4   *   *   *    /sbin/shutdown -r +5

每天凌晨4:05重新启动系统。(4:00 am + 5分钟)

Ctrl+ XYEnter应该让你离开的crontab(如果使用纳米)

注意:您可能必须以crontab -eroot用户身份运行,因为shutdown需要root用户。crontab -e在/ tmp而不是实际的crontab中打开文件,以便它可以检查新的crontab中是否有错误。如果没有错误,那么您的实际crontab将被更新。


1
谢谢(你的)信息。我唯一要做的就是将命令更改为/ sbin / shutdown以使其对我有用。

1
这对我没有用。同时使用两者,crontab -esudo crontab -e在您退出时将文件保存到临时位置(例如/tmp/crontab.Y88XQl/crontab),并且该任务无法运行。我被迫直接编辑/ etc / crontab
wal

@wal“ crontab -e在/ tmp而不是实际的crontab中打开一个文件,以便它可以检查新的crontab中是否有错误,并防止您用这些错误覆盖实际的crontab。如果没有错误,则实际的crontab将进行更新。” unix.stackexchange.com/questions/197504/...
Christh

14

将其添加到/etc/cron.daily/zz-reboot应该工作:

#!/bin/sh
shutdown -r now

sudo chmod a+x /etc/cron.daily/zz-reboot。“ zz”前缀将强制其在该目录中所有其他脚本中最后运行。查看/etc/crontab实际发生的时间:

grep daily /etc/crontab | awk '{print $2 ":" $1}'

如果那行不通,那么“常规” cron条目也可以通过 sudo crontab -e

MINUTE HOUR * * * shutdown -r now

最后,如果您想一次性重启,可以使用at

echo "shutdown -r now" | sudo at 04:30

据我所知,这将在您每天创建该文件的同时重新启动系统,如果我输入的错误,请更正我
sBlatt 2010年

1
不完全是:它将每天在cron.daily运行的任何时间重启一次,这有点不可预测。如果您尚未anacron安装,则该时间为当地时间06:25,这可能没问题(如果您早起,可能会很糟糕)。如果您这样做了(我认为这是默认设置),那么很可能是每天第一次开机后的10分钟,这真是令人生气。无论如何,cron.daily这不是一个很好的选择。
poolie

cron.daily每天晚上6:25在我的系统上运行。通常将其设置为06:00至06:59之间的随机分钟。请查看/ etc / crontab中有关系统时间的信息
elzapp 2010年

1
为此使用cron.daily的最大问题是,它可能会干扰cron.daily中的其他作业。
elzapp

1

您应该按照Kees Cook给出的说明创建脚本...

您可以将以下信息复制并粘贴到任何文本编辑器中,然后zz-reboot在建议的目录中创建文件。

之后,只需记住右键单击该文件并为其分配执行权限即可。如果您只是想使用终端机:

sudo chmod +x /etc/cron.daily/zz-reboot

为了更好地了解你在做什么,请记住,在/etc文件夹中发现一般的配置文件和那里你可以找到cron.hourlycron.daily而其他的cron文件夹。Cron负责在特定时间执行应用程序和脚本。

如果您想严格限制重启时间,请输入位数

sudo crontab -e

因此您可以crontab为root用户编辑。

如果您感觉更好地以图形方式进行操作,则可以从软件中心的gnome计划进行安装。如果要修改gnome-schedulefor root用户,请确保从终端运行它:

gksudo gnome-schedule

玩得开心!:)

ps:很棒!我想知道是否有任何方法可以cron.daily手动强制执行时间。


/ etc / crontab中有一个用于调整时间的条目,但是afaik,如果此时计算机关闭,它将在计算机启动后执行几分钟
sBlatt 2010年

1

我已经在cronjobs工作了大约一个月,并计划关闭电源,然后重新启动。非常简单 我知道这是5年前提出的,但是如果有人仍然有问题,可以使用此方法,您会被设置。

打开终端(ctrl + T)

sudo nano /etc/crontab

一直滚动到底部,然后输入以下命令

00 6 * * * root reboot 

设置为每天早上6点重新启动,然后按Enter

如果您要安排每天晚上11点下电,您可以输入

00 23 * * * root poweroff

我仍然需要弄清楚当cronjob关闭时如何启动计算机。找出答案后,我将对其进行编辑。

附言:这是我有史以来第一次以任何形式发布答案;希望对别人有帮助!!:D


3
答案与5年前的内容相同,但有更多详细信息和自动语法验证(通过crontab -e)。
David Foerster

1
不要忘记重启cronsudo /etc/init.d/cron restart
brcebn
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.