slicd is a Linux cron daemon aiming to be small, simple and lightweight. It doesn't try to support every possible feature under the sun, and while not a requirement is perfectly fitted to run under a supervision suite.
It comes as a few modules :
-
slicd-parser : to parse crontabs into one "compiled" file
The parser's job is to process all system & user crontabs and compile them into a single file, in a ready-to-use format for the scheduler.
See slicd-parser(1) for information on supported format/syntax of crontabs.
-
slicd-sched : the scheduler, aka the actual cron daemon
The scheduler simply loads the compiled crontabs, determines the next time a job needs to run and simply waits for it. It doesn't need to wake up every minute (as most cron daemons do) and handles time changes (manual, NTP, DST...) fine.
It also doesn't actually run anything, but simply prints on its stdout one line for each job to run, in the form USERNAME:COMMAND LINE
-
slicd-exec : the exec daemon, to actually run jobs
The scheduler's stdout is aimed to be piped into this daemon's stdin, which will handle forking and executing the command line. It will report all forks & reaped children on its stdout, as well as anything printed on a child's stdout or stderr.
It is important to note that it doesn't do any drop of privileges or environment changes, instead you're supposed to do this making sure it execs into the right tools; such as one to drop privileges to a specific user, one to set up the correct environment, etc
In addition, a few extra tools are provided, meant to be used alongside slicd-exec(1) :
- setuid : drop privileges to the specified user
- miniexec : minimal parsing & execing of command-line
slicd - Copyright (C) 2016 Olivier Brunel jjk@jjacky.com
slicd is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
slicd is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with slicd (COPYING). If not, see http://www.gnu.org/licenses/
Some useful links if you're looking for more info:
Plus, slicd comes with man pages.