Pertanyaan bagus. Saya mencoba apa yang saya sadari sekarang Anda pasti sudah mencoba - menjadwalkan shutdown dan menanyakan timer systemd!
Itu menunjukkan bahwa shutdown tidak di timer systemd, seperti yang Anda catat. Jadi dengan cepat membaca sumber systemctl memberi kita panggilan ini, sebagai bagian dari halt_main()
:
r = sd_bus_call_method(
b,
"org.freedesktop.login1",
"/org/freedesktop/login1",
"org.freedesktop.login1.Manager",
"ScheduleShutdown",
&error,
NULL,
"st",
arg_action == ACTION_HALT ? "halt" :
arg_action == ACTION_POWEROFF ? "poweroff" :
arg_action == ACTION_KEXEC ? "kexec" :
"reboot",
arg_when);
( systemctl.c line 7387 )
Jadi akan terlihat bahwa shutdown ditangani oleh logind
. Anda dapat terus mengejar detail jika Anda suka- lihat login-dbus.c
. Ada metode di sana untuk penjadwalan, pembatalan, pengelolaan shutdown. Tetapi untuk pemahaman yang lebih dalam, Anda mungkin perlu tahu lebih banyak tentang logind / systemd daripada saya.
Singkat cerita, info shutdown disimpan (setidaknya) dalam file jadwal di /run/systemd/shutdown/scheduled
, konten saya sebagai contoh adalah:
USEC=1435715559055789
WARN_WALL=1
MODE=poweroff
Menunjukkan waktu (dalam mikrodetik, mungkin); apakah akan memperingatkan melalui wall
, dan mode mana (cf restart, kexec dll).
Semoga ini menunjukkan Anda ke arah yang benar setidaknya!