<!--
Fcron documentation
-Copyright 2000-2004 Thibault Godouet <fcron@free.fr>
+Copyright 2000-2006 Thibault Godouet <fcron@free.fr>
Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License,
Version 1.1 or any later version published by the Free Software
A copy of the license is included in gfdl.sgml.
-->
-<!-- $Id: faq.sgml,v 1.13 2005-07-28 11:07:48 thib Exp $ -->
+<!-- $Id: faq.sgml,v 1.14 2006-01-11 01:01:18 thib Exp $ -->
<sect1 id="faq">
<title>Frequently Asked Questions</title>
<para>This FAQ intends to complement the man pages by following a more
practical approach.</para>
- <para>If you think a QA should be added, please mail me it !</para>
+ <para>If you think a QA should be added, please mail me it!</para>
<qandaset>
<qandaentry>
<question>
- <para>How does fcron handle system clock adjustments ?</para>
+ <para>How does fcron handle system clock adjustments?</para>
</question>
<answer>
<para>
</qandaentry>
<qandaentry>
<question>
- <para>How does fcron handle daylight saving time changes ?</para>
+ <para>How does fcron handle daylight saving time changes?</para>
</question>
<answer>
- <para>There are two types of daylight saving time change :
+ <para>There are two types of daylight saving time change:
the remove-one-hour change (for instance, "at 3:00, it will be 2:00"),
and the add-one-hour one (for instance, "at 2:00, it will be 3:00").
In both cases, fcron will run the job only once (more precisely, it won't
run the job twice as many as it should have).</para>
<para>In the first case, the official time changes as follow
-(in order of real chronological time) : [x, 2:00] -> i1 : [2:00, 3:00]
- -> i2 : [2:00, 3:00] -> [3:00, y]. i1 and i2 are the names of the two
+(in order of real chronological time): [x, 2:00] -> i1: [2:00, 3:00]
+ -> i2: [2:00, 3:00] -> [3:00, y]. i1 and i2 are the names of the two
intervals [2:00, 3:00]. For this kind of DST change, a job which should
run between 2:00 and 3:00 will run either in i1 or in i2, but not both.
Consequently, a job scheduled to run every day at 2:30 (for instance)
will be run only once. There is no way for a user to know if the job will
be run in i1 or i2.</para>
- <para>In the second case, there is a gap in time :
-the official time changes as follow (in order of real chronological time) :
+ <para>In the second case, there is a gap in time:
+the official time changes as follow (in order of real chronological time):
[x, 2:00] -> [3:00, y]. A job scheduled between 2:00 and 3:00 will get
run once, and only once, even if it should have been run several times.
For instance, a job which should have run every 10 minutes will run only
<qandaentry>
<question>
<para>What about fcron and software suspend
- (aka. suspend to RAM, to disk) ?</para>
+ (aka. suspend to RAM, to disk)?</para>
</question>
<answer>
<para>We suppose here that you are using swsusp and the hibernate
<para>When you switch on your computer after a suspend to disk,
the system time will be incorrect, and will then be corrected
by the hibernate script. Before it is corrected, fcron may
- compute the time and date of the next execution of a job :
+ compute the time and date of the next execution of a job:
the computation would then be incorrect (please see the entry
about system clock adjustment in the present FAQ).</para>
<para>So you should have the hibernate script stop fcron before
<qandaentry>
<question>
<para>How can I prevent fcrontab from considering the first
-"word" of my command line as a user name i.e. "runas(word)" ?</para>
+"word" of my command line as a user name i.e. "runas(word)"?</para>
</question>
<answer>
<para>
Suppose you have an user called "echo" (weird idea ... :)) ). If you use
-the line '* * * * * echo "Hello !"' in root's fcrontab, "echo" will be
+the line '* * * * * echo "Hello!"' in root's fcrontab, "echo" will be
interpreted as "runas(echo)".</para>
- <para>To suppress that, put your command in quotes :
-<programlisting>* * * * * 'echo "Hello !"'</programlisting> will work as
+ <para>To suppress that, put your command in quotes:
+<programlisting>* * * * * 'echo "Hello!"'</programlisting> will work as
expected as quotes are allowed for the shell command but not for the user
name.</para>
</answer>
<qandaentry>
<question>
- <para>How can I use fcrontab in scripts ?</para>
+ <para>How can I use fcrontab in scripts?</para>
</question>
<answer>
<para>
You can use pipes with "<command>fcrontab -l</command>" (list the
fcrontab) and "<command>fcrontab -</command>" (read the new fcrontab from
-input). For example : </para>
+input). For example: </para>
<screen> <command>echo -e "`fcrontab -l | grep -v exim`\n0 * * * * /usr/sbin/exim -q" | fcrontab -</command></screen>
<para>
can be used to add a line. Another way to do it would be to:
<qandaentry>
<question>
<para>Can I use fcron from time to time, for instance in a
-script ?</para>
+script?</para>
</question>
<answer>
<para>Let's suppose you use fcron in your ppp-up script. Fcron
can permit you to run some jobs at connection startup, but not at each
-connection, like it would be if the job was run directly by the ppp-up script :
+connection, like it would be if the job was run directly by the ppp-up script:
for instance, only once every week.</para>
<para><example>
- <title>Using fcron in a script : running a job once
+ <title>Using fcron in a script: running a job once
every day, week, etc, at dialup connection</title>
- <para>You can use a script like :</para>
+ <para>You can use a script like:</para>
<programlisting>
# A ppp-up script ...
-# run the jobs pending, then returns :
+# run the jobs pending, then returns:
fcron -f -y -o
</programlisting>
- <para>in conjunction with a fcrontab file like :</para>
+ <para>in conjunction with a fcrontab file like:</para>
<programlisting>
# a fcrontab file ...
%random(no),weekly,stdout * * /a/command/to/download/latest/mozilla/release
</example></para>
<para>You can also use fcron to run some jobs until the end of
the connection. For instance, you can make fetchmail retrieve mails more often
-during connection : we suppose that it is configured to retrieve mails every
+during connection: we suppose that it is configured to retrieve mails every
hour, which launches a dialup connection if necessary, and we want it to check
for mails every 5 minutes while connected.</para>
<para><example>
- <title>Using fcron in a script : running a job until the
+ <title>Using fcron in a script: running a job until the
end of the connection</title>
- <para>ppp-up script :</para>
+ <para>ppp-up script:</para>
<programlisting>
# A ppp-up script ...
-# run fcron at the beginning of the connection :
+# run fcron at the beginning of the connection:
fcron -b
</programlisting>
- <para>ppp-down script :</para>
+ <para>ppp-down script:</para>
<programlisting>
# A ppp-down script ...
-# stop fcron at the end of the connection :
-# -- Warning : killall may have unwanted effect on non linux systems --
+# stop fcron at the end of the connection:
+# -- Warning: killall may have unwanted effect on non linux systems --
killall -TERM fcron
</programlisting>
- <para>the fcrontab :</para>
+ <para>the fcrontab:</para>
<programlisting>
# a fcrontab file ...
@volatile,first(0) 5 fetchmail
<qandaentry>
<question>
- <para>Can I run fcron without root's privileges ?</para>
+ <para>Can I run fcron without root's privileges?</para>
</question>
<answer>
<para>Yes, you can. To do that, see the
<orderedlist>
<listitem>
<para>First, create a directory where you'll install fcron,
- and some subdirectories :</para>
+ and some subdirectories:</para>
<screen><prompt>bash$
</prompt> <command>mkdir /home/thib/fcron</command>
<prompt>bash$</prompt> <command>cd /home/thib/fcron</command>
<listitem>
<para>Then, run configure with option
<option>--with-run-non-privileged</option>, set all user names and groups to yours,
-and set appropriately the paths :</para>
+and set appropriately the paths:</para>
<para><warning>
<para>This option allows a non privileged user to run
fcron. When used, fcron does not change its rights before running a job
<qandaentry>
<question>
- <para>Has fcron some incompatibilities with Vixie cron ?</para>
+ <para>Has fcron some incompatibilities with Vixie cron?</para>
</question>
<answer>
<para>As far as I know, fcron supports completely the syntax of
Vixie cron's crontab, excepted the @* syntax (@annually,
- @weekly, etc : if you use that, you will have to replace it
+ @weekly, etc: if you use that, you will have to replace it
with the explicit equivalent given in crontab(5)). So you
should not have much problem with that (otherwise, please
contact me at &email;).</para>
As for now, fcron do not do that. Fcron do not support the
/etc/cron.d/ dir too, as it is just an extension of the /etc/crontab
file.
- But be reassured : /etc/cron.{daily,weekly,monthly} are supported
+ But be reassured: /etc/cron.{daily,weekly,monthly} are supported
by fcron (in fact, those dirs are not managed by fcron directly,
but by run-parts, which is independent from fcron).</para>
<para>So if you want to replace transparently Vixie cron by fcron,
all you have to do is creating a /usr/bin/crontab link to
/usr/bin/crontab, and to reinstall the system (f)crontab
with fcrontab /etc/crontab each time you modify it
- (if you find something else to do, please tell me !).</para>
+ (if you find something else to do, please tell me!).</para>
<para>You can also use the script script/check_system_crontabs
to generate a system fcrontab from /etc/(f)crontab and /etc/cron.d/,
and install it automatically. If you choose to do that, take
- a look at the beginning of the script : you will find insctructions
+ a look at the beginning of the script: you will find insctructions
on how to use it -- and a few warnings you should pay attention to.
With this script, the behavior of fcron should be very similar
to Vixie cron's one concerning /etc/crontab and /etc/cron.d/.
</qandaentry>
<qandaentry>
<question>
- <para>How can I emulate an anacron entry ?</para>
+ <para>How can I emulate an anacron entry?</para>
</question>
<answer>
- <para>You should use a line similar to the following one :</para>
+ <para>You should use a line similar to the following one:</para>
<para>@volatile,first(xx) BIG-period /your/command</para>
<para>where xx is the time you would have put in your anacron line.</para>
</answer>