systemd:遅延終了時刻を確認するには?

systemd:遅延終了時刻を確認するには?

shutdown -h TIME/+DELAYたまに利用すればいいと思います。しかし、(Ubuntuから)systemdに切り替えて以来、状況は大きく変わったようです。

以前の終了コマンドが新しいコマンドの実行を妨げなくなるという事実以外は、現在の終了プロセスの予定された終了時間を確認する方法がわかりません。

私はただ入って、ps aux | grep shutdown締め切り時間がいつなのかを確認したりしました。

systemdを使用すると、次の内容が表示されます。

root      5863  0.0  0.0  13300  1988 ?        Ss   09:04   0:00 /lib/systemd/systemd-shutdownd

そのプロセスのスケジュールされた終了時間をどのように確認できますか?

そのようにしてみましたshutdown -kが、ただの淡いメッセージだけを使うのではなく、締め切りも今+1分に変更するようです。

答え1

# cat /run/systemd/shutdown/scheduled
USEC=1537242600000000
WARN_WALL=1
MODE=poweroff

USECはマイクロ秒精度のunix epochタイムスタンプなので、次のようになります。

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

システムバージョンは232-25+deb9u4Debian ストレッチで実行されます。

答え2

最も簡単:(Debian/Ubuntu と RedHat でも動作)

date --date @$(head -1 /run/systemd/shutdown/scheduled |cut -c6-15)

答え3

すべてのシステムバージョン

org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdownD-Busインターフェースの使用:

USECS=$(busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown | cut -d ' ' -f 3)
SECS=$((USECS / 1000000))
date --date=@$SECS

systemdバージョンのみ< 2015年5月

# 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 Tue 2015-09-15 09:13:11 UTC; 12s ago
Docs: man:systemd-shutdownd.service(8)
Main PID: 965 (systemd-shutdow)
Status: "Shutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)..."
CGroup: /system.slice/systemd-shutdownd.service
       └─965 /lib/systemd/systemd-shutdownd

StatusはいShutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)...

答え4

私は同じ問題があり、終了計画を確認する別の方法を見つけました。

終了スケジュールを設定するとログインしてメッセージ権限が Yes に設定されているすべての人にメッセージが送信されます。壁が呼び出されるたびに通知が作成されます。システムログ。検索するシステムログ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)...

関連情報