[CentOS] Getting email from cron when script is run manually

Jeff Larsen jlar310 at gmail.com
Wed Dec 19 21:30:15 UTC 2007


> > > Could a previous cronjob be hanging, waiting for the initscript to finish?
> > >
> > > I bet the daemon doesn't die as expected sometimes.
> >
> > Aha! looking at 'ps aux' we have:
> >
> > crond
> > /bin/bash /usr/bin/run-parts /etc/cron.daily
> > awk -v progname=/etc/cron.daily/gk-restart ... <lots more junk>
> >
> > All at 4:02 AM which is when cron.daily is processed.
> >
> > The awk  process is from the run-parts script. So even though my init
> > script works perfectly from the command line, it seems to be somehow
> > incompatible with run-parts. I guess that's something to go on. Looks
> > like I'll need to disect run-parts to see what's happening.
>
> I doubt it has anything to do with run-parts; it just doesn't do much.

The problem was a failure to redirect stderr in my home-grown init
script. I was sending stdout to /dev/null, but not stderr. Both
run-parts, and cron in general try to grab both stderr and stdout and
pipe anything they get to email. But since my script wasn't closing
stderr, cron was hanging on and waiting for input. Adding 2>&1 to the
end of the python command fixed it. Dumb mistake on my part. But in my
defense, interpreted languages make for lousy daemons.

Jeff



More information about the CentOS mailing list