l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
September 2: Social gathering
Next Installfest:
TBD
Latest News:
Aug. 18: Discounts to "Velocity" in NY; come to tonight's "Photography" talk
Page last updated:
2004 Mar 03 12:03

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] cron - not at a different time
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] cron - not at a different time



On Wed, Mar 03, 2004 at 11:40:24AM -0800, Peter Jay Salzman wrote:
> On Wed 03 Mar 04, 11:28 AM, Jeff Newmiller <jdnewmil@dcn.davis.ca.us> said:
> > On Wed, 3 Mar 2004, Ken Herron wrote:
> > 
> > > --On Wednesday, March 03, 2004 10:11:10 -0800 Peter Jay Salzman 
> > > <p@dirac.org> wrote:
> > > 
> > > >> > 25 4 * * * root test -e /usr/sbin/anacron || run-parts --report
> > > >> /etc/cron.daily
> > > >>
> > > >> That line will only launch "run-parts" if /usr/sbin/anacron doesn't
> > > >> exist. Does /usr/sbin/anacron exist?
> > > >
> > > > ken,
> > > >
> > > > yeah, it does exist.   daily definitely runs.  it just runs at a time i
> > > > wasn't expecting.
> > > 
> > > My point was that if /usr/sbin/anacron exists, then the crontab line 
> > > above will not run cron.daily. You say that /usr/sbin/anacron exists, so 
> > > cron.daily is not being launched as a result of the above crontab line. 
> > > That means something else is running it. Something like anacron, for 
> > > example.
> > 
> > This list is great.  This explains a longstanding puzzle (to me) of how
> > (and to some extent why) both cron and anacron are installed on my debian
> > box.
> > 
> > Now that I see how it works, I am not too impressed with this kludge,
> > though... this is a deceptively obtuse configuration duplication between
> > these two packages.
> 
> ok, maybe i'm slow, but i don't understand why that line will only
> launch if /usr/sbin/anacron doesn't exist.

The shell uses short-circuit evaluation on conditionals. When it sees 
A || B
it first evaluates A. Then if A is true, the value of the whole
conditional has to be true, so B never even gets evaluated. 

So, if "test -e /usr/sbin/anacron" is true because anacron is installed,
then the shell doesn't bother with "run-parts --report /etc/cron.daily"
because it has already figured out the value of the conditional.

On the other hand, if "test -e /usr/sbin/anacron" is false, then the
shell is looking at (false || "run-parts --report /etc/cron.daily"),
which evaluates to whatever the right-hand side evaluates to. 
 
> /etc/init.d/cron gets run upon startup.  the only test i see is:
> 
>    test -f /usr/sbin/cron || exit 0
> 
> it doesn't look look for /usr/sbin/anacron.  what am i missing?
> 
> pete
> 
> -- 
> Make everything as simple as possible, but no simpler.  -- Albert Einstein
> GPG Instructions: http://www.dirac.org/linux/gpg
> GPG Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D

-- 
Samuel Merritt
OpenPGP key is at http://meat.andcheese.org/~spam/spam_at_andcheese_dot_org.asc
Information about PGP can be found at http://www.mindspring.com/~aegreene/pgp/

Attachment: pgp00002.pgp
Description: PGP signature



LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
O'Reilly and Associates
For numerous book donations.