systemd:遅延シャットダウンの予定時刻を確認する方法は?


14

私はshutdown -h TIME/+DELAY時々使うのが好きです。ただし、systemdへの切り替え(Ubuntu上)以来、状況はかなり変わったようです。

以前のシャットダウンコマンドで新しいコマンドの実行が妨げられなくなったという事実は別として、現在のシャットダウンプロセスの予定されたシャットダウン時間を確認する方法がわかりません。

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分に変更しているようです。

回答:


12

man shutdown(8)言う:

最初の引数は、時間文字列(通常は「現在」)です。

時間文字列は、24時間形式で指定されたシャットダウンを実行する時間を指定する時間/分の「hh:mm」形式のいずれかです。あるいは、指定された分数mを指す「+ m」という構文になります。「now」は「+0」のエイリアスです。つまり、即時シャットダウンをトリガーします。時間引数が指定されていない場合、「+ 1」が暗黙指定されます。

試してください:

# shutdown +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

StatusShutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)...


ありがとう。それは簡単でした。以前は成功せずに「サービスステータス」を試しました。systemdにまだ慣れていないようです。
KIAaze

3
systemd-shutdownd2015
。– JdeBP

そのとおりです。ご指摘いただきありがとうございます。systemdの新しいバージョンを使用する場合は、次のようなもので十分です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
エフゲニーVereshchagin

9
# 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で実行されています。


5

新しいLinuxディストリビューションバージョンの場合、次の作業が必要になる場合があります。

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

シャットダウンの動作方法が変更されました

試したもの:-Debian Stretch 9.6-Ubuntu 18.04.1 LTS

参照資料


2
出力では、Unixエポック以降のシャットダウン時間をマイクロ秒として指定しています。人間が読める時間を取得するには:date -d @$(( $(busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown | cut -d' ' -f3) / 1000000 ))
200_success

4

私は同じ質問に遭遇し、シャットダウン計画を確認する別の方法を見つけました。

シャットダウンプランを設定すると、wallは、mesgパーミッションをyesに設定してログインしている全員にメッセージを送信します。wallの呼び出しごとに、通知がsyslogに書き込まれます。syslogを検索するには、コマンドを実行し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)...

1

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.