Bonne question. J'ai essayé ce que je réalise maintenant que vous devez avoir essayé de planifier un arrêt et d'interroger les temporisateurs systemd!
Cela a montré que l'arrêt n'était pas dans les temporisateurs systemd, comme vous l'avez noté. Alors, une rapide lecture de la source systemctl nous donne cet appel, dans le cadre de 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);
( ligne systemctl.c 7387 )
Il semblerait donc que les arrêts soient gérés par logind
. Vous pouvez continuer à rechercher les détails si vous le souhaitez login-dbus.c
. Il existe des méthodes pour planifier, annuler, gérer les arrêts. Mais pour une compréhension plus approfondie, vous devrez peut-être en savoir plus sur logind / systemd que moi.
Pour faire court, les informations sur l'arrêt sont stockées (au moins) dans un fichier de planification sur /run/systemd/shutdown/scheduled
, le contenu du mien à titre d'exemple était:
USEC=1435715559055789
WARN_WALL=1
MODE=poweroff
Indiquer le temps (en microsecondes, probablement); s'il faut avertir via wall
, et quel mode (cf redémarrage, kexec etc).
J'espère que cela vous indique au moins dans la bonne direction!