İyi soru. Şimdi bir kapatma zamanlama ve systemd zamanlayıcıları sorgulamak-denedim olması gerektiğini fark ne denedim!
Bu, belirttiğiniz gibi kapatma işleminin sistemd zamanlayıcılarında olmadığını gösterdi. O zaman systemctl kaynağının hızlı bir şekilde incelenmesi bize şu çağrıyı verir 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 satır 7387 )
Yani, kapanmaların üstesinden geldiği anlaşılıyor logind
. İsterseniz ayrıntıları takip etmeye devam edebilirsiniz login-dbus.c
. Kapatmaları planlamak, iptal etmek ve yönetmek için yöntemler vardır. Ancak daha derin bir anlayış için logind / systemd hakkında benden daha fazla bilgi sahibi olmanız gerekebilir.
Uzun lafın kısası, kapatma bilgisi (en azından) bir zamanlama dosyasında saklanır /run/systemd/shutdown/scheduled
, örnek olarak benim içeriğim şunlardı:
USEC=1435715559055789
WARN_WALL=1
MODE=poweroff
Zamanı belirten (mikrosaniye cinsinden, muhtemelen); uyarılması gerekip gerekmediği wall
ve hangi modda (cf yeniden başlatma, kexec vb.).
Umarım bu sizi en azından doğru yönde gösterir!