
© stillfx, 133RF.com
The simpler alternative to cron: Whenjobs
CountingTime
One of the many heirlooms from early Unix (since V7 Unix to be exact) is the cron daemon, which still runs regular jobs on today's Linux and BSD systems. Although some alternatives to cron have since been developed, such as fcron [1] and anacron [2], the principle itself has barely changed.
Red Hat programmer Richard W.M. Jones has now broken with tradition and come up with a new cron alternative – a project called Whenjobs. Basically, Whenjobs [3] offers two advantages to cron: simpler syntax for defining jobs and execution times and a system that allows users to define dependencies between jobs.
Prebuilt Whenjobs packages are already available for Fedora 17, but users of other distributions will have to build the tool themselves. To install, you can check Whenjobs out from the Git repository. However, it is easier to download the latest tarfile, because then you don't have to do battle with autoconf and automake.
Because Whenjobs is written in the functional programming language, Ocaml, you will need the matching compiler and a few packages. You can install these with the following command, for example, on Ubuntu 12.10:
sudo apt-get install ocaml ocaml-findlib libcalendar-ocaml libcalendar-ocaml-devcamlp4-extra libocamlnet-ocaml-bin
The ./configure
command starts the configuration step, which tells you whether all the necessary packages are installed. During testing, I saw the following error when I ran make
: error: Unbound value XDR.safe_add
. I resolved this by deleting the generated files lib/whenproto_aux.ml
and lib/whenproto_aux.mli
. Calling make install
installs Whenjobs globally on the system.
Startup Aid
When
...Buy ADMIN Magazine
Subscribe to our ADMIN Newsletters
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Most Popular
Support Our Work
ADMIN content is made possible with support from readers like you. Please consider contributing when you've found an article to be beneficial.
