From 6c58519f7c03a8e59092a738b65d5ace07a8eac1 Mon Sep 17 00:00:00 2001 From: Sean Whitton Date: Tue, 19 Oct 2021 15:47:43 -0700 Subject: add SYSTEMD:{DAEMON-RELOADED,RELOADED,RESTARTED} Signed-off-by: Sean Whitton --- src/package.lisp | 5 ++++- src/property/systemd.lisp | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/src/package.lisp b/src/package.lisp index d7c7bdb..ef1d193 100644 --- a/src/package.lisp +++ b/src/package.lisp @@ -831,8 +831,11 @@ (defpackage :consfigurator.property.systemd (:use #:cl #:consfigurator #:anaphora) (:local-nicknames (#:service #:consfigurator.property.service)) - (:export #:started + (:export #:daemon-reloaded + #:started #:stopped + #:reloaded + #:restarted #:enabled #:disabled #:masked diff --git a/src/property/systemd.lisp b/src/property/systemd.lisp index a9f0c90..ad23867 100644 --- a/src/property/systemd.lisp +++ b/src/property/systemd.lisp @@ -29,6 +29,12 @@ (defun systemctl (fn user &rest args &aux (args (cons "systemctl" args))) (apply fn (if user (apply #'systemd--user args) args))) +(defprop daemon-reloaded :posix (&optional user) + (:desc "Attempt to reload systemd manager configuration") + (:apply (if (service:no-services-p) + :no-change + (systemctl #'mrun user "daemon-reload")))) + (defprop started :posix (service &optional user) (:desc #?"systemd service ${service} started") (:check (or (service:no-services-p) @@ -41,6 +47,18 @@ (plusp (systemctl #'mrun user :for-exit "is-active" service)))) (:apply (systemctl #'mrun user "stop" service))) +(defprop restarted :posix (service &optional user) + (:desc #?"Attempt to restart systemd service ${service}") + (:apply (if (service:no-services-p) + :no-change + (systemctl #'mrun user "restart" service)))) + +(defprop reloaded :posix (service &optional user) + (:desc #?"Attempt to reload systemd service ${service}") + (:apply (if (service:no-services-p) + :no-change + (systemctl #'mrun user "reload" service)))) + (defprop enabled :posix (service &optional user) (:desc #?"systemd service ${service} enabled") (:check (or (and user (service:no-services-p)) -- cgit v1.2.3