``CONSFIGURATOR.PROPERTY.CRON``
===============================
API reference
-------------

General
~~~~~~~

Property: ``CRON:SYSTEM-JOB``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``(cron:system-job desc when user shell-command)``

Installs a cronjob running SHELL-COMMAND as USER to ``/etc/cron.*``.
DESC must be unique, as it will be used as a filename for a script.  WHEN is
either :DAILY, WEEKLY, :MONTHLY or a string formatted according to crontab(5),
e.g. ``0 3 * * *``.

The output of the cronjob will be mailed only if the job exits nonzero.

Property: ``CRON:NICE-SYSTEM-JOB``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``(cron:nice-system-job desc when user shell-command)``

Like CRON:SYSTEM-JOB, but run the command niced and ioniced.

Property: ``CRON:RUNS-CONSFIGURATOR``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``(cron:runs-consfigurator when)``

Re-execute the most recent deployment that included an application of this
property, or of IMAGE-DUMPED with no arguments, using CRON:NICE-SYSTEM-JOB.

This can be useful to ensure that your system remains in a consistent state
between manual deployments, and to ensure the timely application of properties
modified by the PERIODIC:AT-MOST combinator.

For hosts to which this property is applied, mixing usage of DEPLOY and
DEPLOY-THESE (or HOSTDEPLOY and HOSTDEPLOY-THESE, etc.) can lead to some
inconsistent situations.  For example, suppose you

.. code-block:: none

  (hostdeploy foo.example.org (additional-property))

and then later

.. code-block:: none

  (hostdeploy-these foo.example.org (unapplied (additional-property)).

As neither CRON:RUNS-CONFIGURATOR nor IMAGE-DUMPED with no arguments was
applied since ADDITIONAL-PROPERTY was unapplied, the executable invoked by the
CRON:RUNS-CONFIGURATOR cronjob will try to apply ADDITIONAL-PROPERTY again.
One straightforward way to reduce the incidence of this sort of problem would
be to refrain from using the ADDITIONAL-PROPERTIES argument to DEPLOY,
HOSTDEPLOY etc.

You may wish to apply this property within ESEQPROPS-UNTIL; see the docstring
of IMAGE-DUMPED.

Property: ``CRON:USER-CRONTAB-INSTALLED``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

``(cron:user-crontab-installed env &rest jobs)``

Set the contents of the current user's crontab.  ENV is like the ENV argument
to RUN/MRUN, except that the environment variables will be set at the top of
the generated crontab.  Each of JOBS is a line for the body of the crontab.
In both ENV and JOBS, the string "$HOME" is replaced with the remote home
directory.
