systemd: Как проверить запланированное время отложенного завершения работы?

Я ожидаю, что find будет работать как при одном вызове. Если промежуточные файлы не создаются, я бы предложил добавить префикс bash (или другой оболочки), чтобы заставить его запускаться во вспомогательной оболочке. Или вы можете попробовать следующее:

for i in *.gpl
do 
  ( gnuplot "$i" )
done

Скобки заставят подчиненную оболочку, но я не думаю, что это должно быть обязательным.

14
13.06.2018, 19:03
5 ответов

Самый простой:(и работает на Debian/Ubuntu)

date --date @$(head -1 /run/systemd/shutdown/scheduled |cut -c6-15)
10
15.05.2020, 14:16

Я столкнулся с тем же вопросом и нашел другой способ проверить план выключения.

Когда вы зададите план выключения, стена отправит сообщение всем, кто войдет в систему с установленным для них разрешением на сообщение. При каждом вызове стены в системный журнал будет записываться уведомление. Для поиска в системном журнале вы можете запустить команду journalctl -u systemd-shutdownd, опция -uможет отфильтровать журнал по единицам.

При запуске journalctl -u systemd-shutdowndбудут показаны сведения о завершении работы, как показано ниже:

[root@dev log]# journalctl -u systemd-shutdownd
-- Logs begin at Mon 2017-06-12 09:39:34 CST, end at Mon 2017-06-12 14:05:04 CST. --
Jun 12 09:39:50 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 09:39:50 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 09:39:50 dev.local systemd-shutdownd[1249]: Shutting down at Mon 2017-06-12 21:00:00 CST (poweroff)...
Jun 12 09:55:59 dev.local systemd-shutdownd[1249]: Shutdown canceled.
Jun 12 09:56:07 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 09:56:07 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 09:56:07 dev.local systemd-shutdownd[2885]: Shutdown canceled.
Jun 12 11:54:15 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 11:54:15 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 11:54:15 dev.local systemd-shutdownd[3178]: Shutting down at Mon 2017-06-12 20:00:00 CST (poweroff)...
4
27.01.2020, 19:50
# cat /run/systemd/shutdown/scheduled
USEC=1537242600000000
WARN_WALL=1
MODE=poweroff

USEC — это временная метка эпохи unix с микросекундной точностью, поэтому:

if [ -f /run/systemd/shutdown/scheduled ]; then
  perl -wne 'm/^USEC=(\d+)\d{6}$/ and printf("Shutting down at: %s\n", scalar localtime $1)' < /run/systemd/shutdown/scheduled
fi

будет отображать что-то вроде:

Shutting down at: Tue Sep 18 03:50:00 2018

Версия Systemd — это 232 -25+deb9u4 , работающая на Debian Stretch.

13
27.01.2020, 19:50

Для более новых версий дистрибутивов Linux вам может потребоваться:

busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown

Изменился метод завершения работы

Примеряли :-Растяжка Debian 9.6 -Ubuntu 18.04.1 LTS

Ссылки

7
27.01.2020, 19:50

На машине с Ubuntu 18.04 завершением работы управляет systemd. На моей машине я включил автоматическую перезагрузку через автоматические обновления :

.
$ grep Automatic-Reboot /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Запланированное время автоматической перезагрузки сохраняется в /run/systemd/shutdown/scheduled.

$ cat /run/systemd/shutdown/scheduled
USEC=1563976800000000 
WARN_WALL=1
MODE=reboot

Вы можете преобразовать его в удобочитаемое время с помощью следующей команды:

$ date -d "@$( awk -F '=' '/USEC/{ $2=substr($2,1,10); print $2 }' /run/systemd/shutdown/scheduled )"
Thu Jul 25 02:00:00 NZST 2019
2
27.01.2020, 19:50

Теги

Похожие вопросы