开机时间超过30分钟后重启电脑

Restart the computer when the power on time exceeds 30 minutes

我目前通过正常运行时间来控制它。 如果正常运行时间大于 1 小时,计算机将重新启动。

但是我不知道电脑是开一天还是更久怎么控制,因为目前我只控制时间

是否可以控制正常运行时间的天数、小时数和分钟数? 开机时间大于1小时需要重启电脑。 如果时间为1天0小时则失败。

对不起我的解释,它是一个脚本做一系列的事情,最终存在这个函数负责控制这个参数。

感谢阅读我

如果您想在脚本中执行此操作,请使用 uptime | grep " 天的结果"to determine whether to execute things (in anifcondition), then do anything you want inside theif`。

使该脚本可执行并将其放入 crontab 中,每 5 分钟左右 运行。

有关 Cron 的更多信息:https://wiki.archlinux.org/index.php/Cron

不确定我是否完全理解您的问题。

如果您希望您的计算机总是在特定时间后重新启动,这很不寻常,那么请使用 cron。将此添加到 /etc/crontab(或者,如果您的计算机上有 /etc/cron.d 目录,您也可以使用此内容创建一个文件 /etc/cron.d/reboot):

@reboot    root    sleep 1800; /sbin/reboot

(调整reboot的路径以匹配您的系统;1800是30分钟的秒数,将其更改为您需要的任何延迟)


另一方面,您可能正在编写一个脚本来重新启动您的服务器,如果它在 30 分钟的正常运行时间之前 运行(这更有意义),您可能希望阻止它工作.

然后,我了解到您在解析 uptime 的结果时遇到困难,您应该使用 /proc/uptime,它以秒为单位提供您的正常运行时间:

#!/bin/sh
not_before=1800             # Number of seconds - adapt to your needs
uptime=$(cut -d . -f 1 /proc/uptime)

[ "$uptime" -ge "$not_before" ] && exec reboot
echo "Sorry, only $uptime s of uptime; you must wait $((not_before - uptime)) seconds" >&2
exit 1