KCRON (KDE Task Scheduler) vs Slackware
Crond is the Unix/Linux Daemon that runs tasks at prescheduled times. KCRON is a KDE program that provides a very pretty graphical user interface for scheduling tasks under Linux. Problem is that while KCRON ships with Slackware and runs nicely, the tasks it schedules never get run. I spent a fair amount of time trying to figure out what I was doing wrong. It turns out that I probably wasn't doing anything wrong. KCRON and Slackware 11.0 are (I believe) incompatible.
I'm going to ship copies of this report to the folks at Slackware, and the maintainers of kcron, crond, and KDE. I'd like to thank them for their work in creating this free software. I've been in and out of the computer test business since the early 1960s and I know that lengthy problem reports with lots of complaints are not always well received (I've done development also incidentally). But I'm pretty well convinced that what works best is that test people report everything -- no matter how trivial -- and developers decide what they will change/fix/ignore.
Thanks again ... Really.
PROBLEMS FOUND IN USING THE KDE KCRON PROGRAM WITH SLACKWARE
The major problem is that kcron is shipped with Slackware 11.0. It runs and appears to work, but the scheduled tasks are never run by the crond daemon. There may be documentation somewhere that explains this, and once the underlying problem is identified, there may be a fix (Maybe some cute trick involving links?). I couldn't come up with any obvious idea, but I'm approaching 70 and am no longer as smart as I once thought I was.
Anyway, during the course of trying to figure out what was going on, I observed some things that seemed sort of like problems. I'm writing this report to document what I found.
KCRON doesn't actually schedule tasksThe problem here is that KCRON configures and maintains scheduled tasks in /etc/chrontab. Slackware, however, apparently keeps its schedules in /var/spool/cron/crontab and never looks at /etc/chrontab. Moreover, Slackware doesn't exactly keep its scheduled tasks in /var/spool/cron/crontab What it keeps there is a scheduled script that runs all the files in a directory /etc/cron.xxx where xxx is 'daily', 'hourly', etc. That is to say the timed task execution in Slackware contains a level of indirection that KCRON is not designed to handle
BTW, the obvious 'fix' -- Make /etc/crontab a link to /var/spool/cron/crontab doesn't work because of the indirection used by Slackware.
KCRON Help doesn't help Slackware usersIf it is possible somehow to use KCRON to schedule Slackware tasks, it'd be nice if Help described how. If it isn't, it'd be helpful if Help said so and directed Slackware users to appropriate documentation for manually updating its scheduling tables
CROND man fileThe crond(1) man file shipped with Slackware apparently was written in 1994 and is somewhat obtuse even for a Unix man file. I'm not equipped to untangle the relationships of the various cron-crond files on the internet. What I did find though is that Google searches for 'crond man' pull up a variety of stuff -- mostly related to something called Vixie-cron whose man file has a description section that is much clearer. In fact, the version of the man file shipped with slackware seems to be almost entirely absent from the Internet. Is it possible/feasible to include a better crond man file with Slackware?
CONFIGURING SLACKWARESo, how does a Slackware user go about scheduling tasks?
'Run As' field is not described in man file The help file for KCRON doesn't describe what the "Run As" field is used for. It may be obvious what it is for, but not to me. I'll admit that I'm not the brightest bulb in the onion patch, but my experience over the years has been that when I don't understand things, others don't either.
Crontab file time resolution is 1 minute, KCRON time resolution is 5 minutesWhen I fed a Slackware crontab whose default execute time is 4:47am into KCRON. KCRON showed it as run daily, but with no time to run it.
KCRON deletes comments in crontabSlackware (and other distributions as well I believe) have a lot of explanatory comments in their chrontab files. KCRON extracts the scheduling lines and discards the explanatory material.
KCRON's list of possible chrontab locations is hard coded? If there is a way to alter the KCRON chrontab list or to get to the slackware crontabs from the GUI screen, it is not obvious how to do it. Neither is it addressed in the man file. I really don't understand what all those possible crontabs are for, but maybe if I needed one of them, the design and usage would be crystal clear.
KCRON should have a 'Save Changes' Dialog If simply making changes and clicking OK isn't good enough, I suppose that some thought should be given to a 'You've changed scheduling but haven't saved the changes -- Save or Discard?' dialog.
CROND man file doesn't adequately explain debug and log optionsThe man file for crond explains how to set logging and debug options, but doesn't address whether more detail is provided by low or high numeric levels. In many programs, experimentation will tell the user which values to try, but experimentation doesn't seem feasible when crond is not running tasks.
CROND man file Description Section It seems that the description section of the 13 year old CROND man file is exceptionally obscure even for a linux man file. I can often manage to make some sort of sense out of man files, and parts of this one are fine but other parts totally defeat me. e.g. '/var/spool/cron/crontabs/cron.update????' I don't have one of those. Is that good? bad? irrelevant? Should I care?
Copyright 2007, Donald Kenney (Donald.Kenney@GMail.com). Permission is hereby granted to use any materials on this page under the V2.5 Creative Commons License. This page has been validated as correct HTML 4.01 Transitional.