systemd: Bagaimana cara memeriksa waktu yang dijadwalkan untuk shutdown yang tertunda?

14

Saya suka menggunakan shutdown -h TIME/+DELAYkadang-kadang. Namun, sejak beralih ke systemd (di Ubuntu), banyak hal yang tampaknya telah berubah sedikit.

Terlepas dari kenyataan bahwa perintah shutdown sebelumnya tidak lagi mencegah menjalankan yang baru, saya tidak tahu cara memeriksa waktu shutdown yang direncanakan dari proses shutdown saat ini.

Saya dulu hanya berlari ps aux | grep shutdownuntuk melihat waktu shutdown yang direncanakan.

Sekarang dengan systemd itu hanya menunjukkan sesuatu seperti ini:

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

Bagaimana saya bisa memeriksa waktu penutupan yang dijadwalkan untuk proses semacam itu?

Saya mencoba shutdown -k, tetapi alih-alih hanya menulis pesan dinding, tampaknya juga mengubah waktu penutupan yang dijadwalkan menjadi +1 menit sekarang.

KIAaze
sumber

Jawaban:

12

shutdown pria (8) mengatakan:

Argumen pertama mungkin berupa string waktu (yang biasanya "sekarang").

String waktu mungkin dalam format "jj: mm" untuk jam / menit yang menentukan waktu untuk menjalankan pematian pada, yang ditentukan dalam format jam 24jam. Atau mungkin dalam sintaks "+ m" mengacu pada jumlah menit yang ditentukan m dari sekarang. "now" adalah alias untuk "+0", yaitu untuk memicu shutdown langsung. Jika tidak ada argumen waktu yang ditentukan, "+1" tersirat.

Mencoba:

# shutdown +5
# systemctl status systemd-shutdownd.service

Anda harus melihat sesuatu seperti ini:

● 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 adalah Shutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)...

Evgeny Vereshchagin
sumber
Terima kasih. Itu mudah. Saya mencoba "status layanan" tanpa hasil sebelumnya. Saya kira saya belum terbiasa dengan systemd.
KIAaze
4
systemd-shutdowndtelah dihapus dari systemd pada Mei 2015.
JdeBP
Itu benar. terimakasih telah menunjukkan itu. Jika versi yang lebih baru dari systemd digunakan, kemudian sesuatu seperti berikut ini harus cukup: 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.
Evgeny Vereshchagin
9
# cat /run/systemd/shutdown/scheduled
USEC=1537242600000000
WARN_WALL=1
MODE=poweroff

USEC adalah cap waktu unix dengan presisi mikrodetik, jadi:

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

akan menampilkan sesuatu seperti:

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

Versi Systemd adalah 232-25 + deb9u4 berjalan pada Debian Stretch.

Delian Krustev
sumber
5

Untuk versi distribusi linux yang lebih baru, Anda mungkin perlu:

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

Metode bagaimana shutdown bekerja telah berubah

Mencoba di: - Debian Stretch 9.6 - Ubuntu 18.04.1 LTS

Referensi

akarapatis
sumber
2
Output menentukan waktu shutdown sebagai mikrodetik sejak zaman Unix. Untuk mendapatkan waktu yang dapat dibaca manusia:date -d @$(( $(busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown | cut -d' ' -f3) / 1000000 ))
200_success
4

Saya menemukan pertanyaan yang sama dan menemukan cara lain untuk memeriksa rencana penutupan.

Ketika Anda mengatur rencana penutupan, dinding akan mengirim pesan ke semua orang yang masuk dengan izin mesg mereka diatur ke ya. Untuk setiap doa dinding, pemberitahuan akan ditulis ke syslog . Untuk mencari syslog , Anda dapat menjalankan perintah journalctl -u systemd-shutdownd, -uopsi dapat memfilter log berdasarkan unit.

Ketika Anda menjalankan journalctl -u systemd-shutdownd, itu akan menampilkan detail penutupan seperti di bawah ini:

[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)...
Key Shang
sumber
1

Pada mesin shutdown Ubuntu 18.04 dikelola oleh systemd. Di mesin saya, saya telah mengaktifkan reboot otomatis melalui peningkatan tanpa pengawasan:

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

Waktu reboot otomatis terjadwal disimpan di /run/systemd/shutdown/scheduled.

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

Anda dapat mengonversikan ini ke waktu yang dapat dibaca manusia menggunakan perintah berikut:

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