我正在使用 CentOS 7.5.1804 和 GNU bash 版本 4.2.46(2)-release (x86_64-redhat-linux-gnu)。
对于维护窗口内的计划重启,我计算从现在到下一次重启的分钟数。例如,要在大约 3 个月内重新启动,我会使用
shutdown -r +129600
由于有兴趣更好地了解 bash,我很好奇最高值是多少以及如何计算它?
使用 int32 的计划关闭将报告
shutdown -r +4294967295
Shutdown scheduled for Tue 10184-07-27 ...
更高的值仍然是可能的,但如何计算可能的最大值?
在我的机器上,/sbin/shutdown 是 /sbin/systemctl 的符号链接。
在 systemctl 源代码(https://code.launchpad.net/~ubuntu-branches/ubuntu/trusty/systemd/trusty)中四处寻找,我明白了
shutdown_parse_argv
函数将时间规范解析为一个称为arg_when
类型的变量usec_t
send_shutdownd
函数创建一个sd_shutdown_command
具有该 usec_t 值的结构该
sd_shutdown_command
结构包含:所以,看起来最长时间是:
再一次,我没有阅读
parse_time_spec
函数以了解参数实际上是如何解析为时间值的。