Hi!

Commit c311089b0b19f094e44d3f858c29f77d757332d1 adds ‘mcron-service’.
If you want to give it a try, your feedback is welcome!  Excerpt from
the manual below.

Ludo’.

7.2.7.2 Scheduled Job Execution
...............................

The ‘(gnu services mcron)’ module provides an interface to GNU mcron, a
daemon to run jobs at scheduled times (*note (mcron)Top::).  GNU mcron
is similar to the traditional Unix ‘cron’ daemon; the main difference is
that it is implemented in Guile Scheme, which provides a lot of
flexibility when specifying the scheduling of jobs and their actions.

   For example, to define an operating system that runs the ‘updatedb’
(*note (find)Invoking updatedb::) and the ‘guix gc’ commands (*note
Invoking guix gc::) daily:

     (use-modules (guix) (gnu) (gnu services mcron))

     (define updatedb-job
       ;; Run 'updatedb' at 3 AM every day.
       #~(job '(next-hour '(3))
              "updatedb --prunepaths='/tmp /var/tmp /gnu/store'"))

     (define garbage-collector-job
       ;; Collect garbage 5 minutes after midnight every day.
       #~(job "5 0 * * *"            ;Vixie cron syntax
              "guix gc -F 1G"))

     (operating-system
       ;; ...
       (services (cons (mcron-service (list garbage-collector-job
                                            updatedb-job))
                       %base-services)))

   *Note mcron job specifications: (mcron)Guile Syntax, for more
information on mcron job specifications.  Below is the reference of the
mcron service.

 -- Scheme Procedure: mcron-service JOBS [#:mcron MCRON2]
     Return an mcron service running MCRON that schedules JOBS, a list
     of gexps denoting mcron job specifications.

     This is a shorthand for:
            (service mcron-service-type
                     (mcron-configuration (mcron mcron) (jobs jobs)))

 -- Scheme Variable: mcron-service-type
     This is the type of the ‘mcron’ service, whose value is an
     ‘mcron-configuration’ object.

     This service type can be the target of a service extension that
     provides it additional job specifications (*note Service
     Composition::).  In other words, it is possible to define services
     that provide addition mcron jobs to run.

 -- Data Type: mcron-configuration
     Data type representing the configuration of mcron.

     ‘mcron’ (default: MCRON2)
          The mcron package to use.

     ‘jobs’
          This is a list of gexps (*note G-Expressions::), where each
          gexp corresponds to an mcron job specification (*note mcron
          job specifications: (mcron)Syntax.).


Reply via email to