puppetlabs/razor-el-mk — pull request #9 by daniel-pittman (2013-10-16 23:44:03+00:00)
Title: Migrate to a systemd timer rather than a Ruby loop

This migrates the Microkernel binary away from a Ruby "daemon" and back to a
model where an external process supervisor triggers each run. This, in turn,
resolves the robustness problem where network issues can cause it to fail out
and ultimately never restart.

In this model a systemd `mk.timer` unit replaces the Ruby daemon code, and the
`mk.service` unit is a one-shot trigger that runs the script and exits -- good
or bad -- before waiting on being triggered again.

The one feature this lacks is adjusting the timer interval dynamically; it is
technically possible (by editing the timer unit and reloading it), but not
implemented and possibly not entirely desirable.

This should, at least, make the registration (and, presently, command
execution) process as robust as systemd itself, which should be approximately
as robust as the entire Linux stack.

Signed-off-by: Daniel Pittman