Intereting Posts
Пользовательский cl termcap вызывает заморозку vim внутри экрана GNU Есть ли конкретная причина, почему Docker не является сервисом на dbus? Как убить процесс после отсоединения его от bash? Как определить параметры для сети предприятия WPA2? Sendmail – ошибка ввода-вывода «Преждевременная EOM» в maillogs Почему мой сервер не может обслуживать более 400 одновременных соединений Как найти строки, содержащие более 100 символов, и содержит «if»? Загрузочное устройство / dev / sda1 не существует на Debian в QEmu Что определяет тип данных журнала, который идет в local1, local2, ect? Понимание перенаправленного if-утверждения в bash Почему bash ‘read’ завершает работу со статусом 1? Уменьшите загрузку процессора с помощью корицы и i915 Как обрабатывать специальные символы в имени файла, используя find sigaction (7): семантика члена si_code siginfo_t Не удается удалить файл на разделе NTFS, событие с правами root

Как рассчитать максимальное значение для shutdown -r + $ {MINUTES}?

Я использую CentOS 7.5.1804 с GNU bash версии 4.2.46 (2) -релиз (x86_64-redhat-linux-gnu).

Для запланированных перезагрузок в windowsх обслуживания я рассчитываю минуты с момента до следующей перезагрузки. Например, для перезагрузки через ~ 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 содержит:

     /* Microseconds after the epoch 1970 UTC */ uint64_t usec; 

Итак, кажется, что максимальное время:

 $ \bc <<< '(2^63-1) / 10^6 / 60' # minutes 153722867280 $ \bc <<< '(2^63-1) / 10^6 / 60 / 24 / 365' # years 17548272 

С другой стороны, я не читал функцию parse_time_spec чтобы увидеть, как аргумент фактически разбирается в значение времени.