Обнаружьте ожидание запланированное завершение работы Сервер Ubuntu 16.04.1

Прежде systemd, один раньше мог видеть процесс завершения работы в списке процессов (например. ps -ef | grep shutdown). Теперь однако новый совет, который я могу найти, состоит в том, чтобы использовать systemctl status, но у меня нет удачи:

root@m________a:~# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:    16.04
Codename:   xenial
root@m________a:~# shutdown -r 14:00
Shutdown scheduled for Mon 2016-10-10 14:00:00 BST, use 'shutdown -c' to cancel.
root@m________a:~# ps -ef | grep "shutdown"
root     10584 10508  0 13:44 pts/0    00:00:00 grep --color=auto shutdown
root@m________a:~# systemctl status systemd-halt.service
● systemd-halt.service - Halt
   Loaded: loaded (/lib/systemd/system/systemd-halt.service; static; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:systemd-halt.service(8)
root@m________a:~# systemctl status systemd-reboot.service 
● systemd-reboot.service - Reboot
   Loaded: loaded (/lib/systemd/system/systemd-reboot.service; static; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:systemd-halt.service(8)
root@m________a:~# systemctl status systemd-poweroff.service 
● systemd-poweroff.service - Power-Off
   Loaded: loaded (/lib/systemd/system/systemd-poweroff.service; static; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:systemd-halt.service(8)

Я был бы очень благодарен, если кто-либо может объяснить, как я могу обнаружить ожидание запланированное завершение работы и, действительно, почему такое завершение работы, кажется, не разоблачает использование systemctl

3
задан 10 October 2016 в 16:01

4 ответа

Можно использовать

cat /run/systemd/shutdown/scheduled

, Это было добавлено к выпуску systemd 220, как объяснено здесь: https://www.phoronix.com/scan.php? page=news_item& px=Systemd-Kill-Shutdownd

3
ответ дан 1 December 2019 в 15:35

В более новых системах (работающий systemd 220 и выше, сверьтесь systemd --version), эти systemd-shutdownd.service, был удален и простой , путь к cat /run/systemd/shutdown/scheduled. Если файл существует, завершение работы находится на рассмотрении, и файл будет содержать что-то как

USEC=1547919000000000
WARN_WALL=1
MODE=poweroff

, я записал немного сценария для обработки того случая:

#!/usr/bin/env bash

if [ -r /run/systemd/shutdown/scheduled ]; then
    source /run/systemd/shutdown/scheduled;
    echo "System will shutdown to mode=$MODE at $(date --date="@$(( USEC / 1000000 ))")";
    exit 0;
else
    echo "No pending shutdown";
    exit 1;
fi

Дополнительные материалы для чтения:

0
ответ дан 1 December 2019 в 15:35

Сценарий PerlDuck, который я нашел, не повторил "Незаконченного завершения работы", если завершение работы-c было выпущено для отмены предыдущего запланированного завершения работы. Запланированный файл в/run/systemd/shutdown все еще остался бы (Ubuntu 16.04) и таким образом проверка, что это будет всегда давать мне старый ответ. Конечно, если ничто не было запланировано во-первых, это функционирует правильно.

я чувствую, что существует технически лучший способ сделать это, а не что я сделал использование сравнения строк; но с маленькой модификацией для проверки результата, данного busctl получать-свойством, это работает на меня:

string="$(busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown)"
if [[ "$string" =~ \ 0$ ]]; then
    echo "No pending shutdown"
    exit 1;
else
    source /run/systemd/shutdown/scheduled
    echo "System will shutdown to mode=$MODE at $(date --date="@$(( USEC / 1000000 ))")";
    exit 0;
fi
0
ответ дан 1 December 2019 в 15:35
systemctl status systemd-shutdownd.service

страница руководства для сервиса:

systemd-shutdownd.service системная служба, которая реализует запланированные завершения работы, как выставлено завершением работы (8). systemd-shutdownd.service автоматически активируется по запросу и завершает себя, когда это не использовано.


Если не активный:

$ systemctl status systemd-shutdownd.service
● systemd-shutdownd.service - Delayed Shutdown Service
   Loaded: loaded (/lib/systemd/system/systemd-shutdownd.service; static; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:systemd-shutdownd.service(8)

Когда активный:

 $ sudo shutdown +100
 Shutdown scheduled for ma 2016-10-10 17:12:56 CEST, use 'shutdown -c' to cancel.
 $ systemctl status systemd-shutdownd.service 
 ● systemd-shutdownd.service - Delayed Shutdown Service
   Loaded: loaded (/lib/systemd/system/systemd-shutdownd.service; static; vendor preset: enabled)
   Active: active (running) since ma 2016-10-10 15:32:56 CEST; 3s ago
     Docs: man:systemd-shutdownd.service(8)
 Main PID: 3129 (systemd-shutdow)
   Status: "Shutting down at Mon 2016-10-10 17:12:56 CEST (poweroff)..."
   CGroup: /system.slice/systemd-shutdownd.service
           └─3129 /lib/systemd/systemd-shutdownd

okt 10 15:32:56 x systemd[1]: Started Delayed Shutdown Service.
okt 10 15:32:56 x systemd[1]: Starting Delayed Shutdown Service...
okt 10 15:32:56 x systemd-shutdownd[3129]: Shutting down at Mon 2016-1...
Hint: Some lines were ellipsized, use -l to show in full.
2
ответ дан 1 December 2019 в 15:35

Другие вопросы по тегам:

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