Все systemd
свойства объектов могут быть запрошены:
systemctl show $unit
Индивидуальные свойства могут быть запрошены:
systemctl show $unit -p $property --value
Технически, это не ответ на ваш вопрос, потому что таймеры не «выполнены», но предположим, что вы хотите посмотреть на единицу, на которую ссылается таймер, тогда вы можете запросить его последнее время «запуска» с помощью:
systemctl show $unit -p ExecMainStartTimestamp --value
и его последнее время "остановки" с:
systemctl show $unit -p ExecMainExitTimestamp --value
Они производят выходные данные в форме So 2017-04-16 19:19:12 UTC
(в моей системе для моей локали), которая не является ни ISO 8601, ни пригодной для передачи (GNU) date
. Но если вы установите LC_TIME
в вызове C
, вы можете обрабатывать данные дальше (при условии, что вы используете GNU date
или подобный инструмент):
date --date="$(LC_TIME=C systemctl show $unit -p ExecMainExitTimestamp --value)" -I
Это (например) вернется 2017-04-16
.
До версии 230 systemd
не предоставлял --value
опцию и вместо этого возвращал значение свойства, которому предшествуют имя свойства и знак равенства. В этом случае вы должны извлечь значение свойства из данных самостоятельно, например с помощью sed
:
date --date="$(LC_TIME=C systemctl show $unit -p ExecMainExitTimestamp | sed -e 's/^[^=]\+=//;')" -I