From 155b0afde46d921295ac04062a03245ee8155e0f Mon Sep 17 00:00:00 2001 From: thib Date: Fri, 12 Sep 2003 20:55:59 +0000 Subject: [PATCH] *** empty log message *** --- doc/en/changes.sgml | 1308 ++++++++++++++++++++++--------------------- doc/en/todo.sgml | 205 ++++--- 2 files changed, 791 insertions(+), 722 deletions(-) diff --git a/doc/en/changes.sgml b/doc/en/changes.sgml index a7ec7b1..a4f2ef0 100644 --- a/doc/en/changes.sgml +++ b/doc/en/changes.sgml @@ -8,800 +8,848 @@ Foundation. A copy of the license is included in gfdl.sgml. --> - + - - Changes + + Changes - - From version 2.9.3 to 2.9.4 - - Merged support for SE Linux (patch from Russell Coker : thanks !) - - - Work on the documentation (fixed spelling mistakes, tried to make things clearer in fcrontab.5) (thanks Bill Wohler for your help !) - - - Changed the subject line of mail reports : it now contains the subject line, and is very similar to vixie cron's one. - - - bug fix : possible crash of fcron when trying to save a file if there was no space left on device. - - - bug fix : we don't consider '-' and '_' as word delimiters for a username before the command anymore, since many programs have one of these characters in their name. - - - fixed a little typo in an error message (could->couldn't) - - + + From version 2.9.3 to 2.9.4 + + Merged support for SE Linux (patch from Russell Coker : thanks + !) + + + Work on the documentation (fixed spelling mistakes, tried to + make things clearer in fcrontab.5) (thanks Bill Wohler for your help + !) + + + Changed the subject line of mail reports : it now contains the + subject line, and is very similar to vixie cron's one. + + + bug fix : possible crash of fcron when trying to save a file + if there was no space left on device. + + + bug fix : we don't consider '-' and '_' as word delimiters for + a username before the command anymore, since many programs have one + of these characters in their name. + + + fixed a little typo in an error message + (could->couldn't) + + + added a fcronsighup.h and a convert-fcrontab.h (required to compile with the generic rule to make .o files on some systems). + + + added some $srcdir to be able (again ;) ) to run configure from another directory. + + - - From version 2.9.2 to 2.9.3 - - security issue : fcron used not to check the fcrontabs installed by -root for a standard user. This could make an inattentive superuser install a user job -runas(root) involontary. - - - Perf improvement : we now use buffers to write something to disk - (became necessary due to the use of O_SYNC). - - - To avoid loss of data in case of an hardware failure or a system -crash, fcron now saves files to a temporary name, and then renames them to their -definitive filename if everything's ok. - - + + From version 2.9.2 to 2.9.3 + + security issue : fcron used not to check the fcrontabs + installed by root for a standard user. This could make an + inattentive superuser install a user job runas(root) + involontary. + + + Perf improvement : we now use buffers to write something to + disk (became necessary due to the use of O_SYNC). + + + To avoid loss of data in case of an hardware failure or a + system crash, fcron now saves files to a temporary name, and then + renames them to their definitive filename if everything's + ok. + + The PID indicated by fcrondyn is now the pid of the job itself -(up to now, it was the one of the fcron process controlling the job). - - - Implemented functions kill (send a signal to a running job) -and renice (change the priority of a running job) in fcrondyn. - - - Added fcron's option -q to control the lavg and serial queue sizes. - - - + (up to now, it was the one of the fcron process controlling the + job). + + + Implemented functions kill (send a signal to a running job) + and renice (change the priority of a running job) in + fcrondyn. + + + Added fcron's option -q to control the lavg and serial queue + sizes. + + + Added some timeouts in fcron for fcrondyn clients. - - - Fcron is less restrictive concerning mailto addresses. In particular, -you can now use address like user@host. - - - bug fix : in 2.9.2, fcrontab and fcron did not set correctly some -file modes. - - - bug (introduced in 2.9.1) : when a job stops with an non-zero exit -status or because it has been signaled, send a mail to its owner to inform him -(in 2.9.1 and 2.9.2, the mail was sent, but contained nothing). - - + + + Fcron is less restrictive concerning mailto addresses. In + particular, you can now use address like user@host. + + + bug fix : in 2.9.2, fcrontab and fcron did not set correctly + some file modes. + + + bug (introduced in 2.9.1) : when a job stops with an non-zero + exit status or because it has been signaled, send a mail to its + owner to inform him (in 2.9.1 and 2.9.2, the mail was sent, but + contained nothing). + + code clean : use the same scheme for all struct types, removed -some code redundancy (save to disk management). - - + some code redundancy (save to disk management). + + - - From version 2.9.1 to 2.9.2 - - Added a system fcrontab. Root can access it with fcrontab by using -"-u systab". - - - fcrondyn's ls_lavgq, ls_serialq and ls_exeq are now functional. - - - mailto can now be set to a non-real user (for ex., an alias). - - - fcron now calls shutdown() when a connection from fcrondyn is closed. -Another change in the code should prevent fcrondyn from not returning to the prompt after -a command has been run. - - - use open() instead of fopen() to write files, for more security. - - - fcrontab sets euid=uid before running the editor. This is required by -some programs (for instance, perl). - - - bug fix : using DESTDIR with make did not work with the doc. - - - Code clean : changed macros to make parameters clearly different -from vars. - - + + From version 2.9.1 to 2.9.2 + + Added a system fcrontab. Root can access it with fcrontab by + using "-u systab". + + + fcrondyn's ls_lavgq, ls_serialq and ls_exeq are now + functional. + + + mailto can now be set to a non-real user (for ex., an + alias). + + + fcron now calls shutdown() when a connection from fcrondyn is + closed. Another change in the code should prevent fcrondyn from + not returning to the prompt after a command has been run. + + + use open() instead of fopen() to write files, for more + security. + + + fcrontab sets euid=uid before running the editor. This is + required by some programs (for instance, perl). + + + bug fix : using DESTDIR with make did not work with the + doc. + + + Code clean : changed macros to make parameters clearly + different from vars. + + - - From version 2.9.0 to 2.9.1 - + + From version 2.9.0 to 2.9.1 + fcron can now be run without root's privileges (see FAQ) - - + linkend="faq">see FAQ) + + added configure's option --with-boot-install . - - + + Minor change in the PAM code of fcron : may work better on -some systems. - - + some systems. + + configure script now uses getpwnam() and getgrnam() instead of - reading directly /etc/passwd and /etc/group : this makes easier the use of NIS, LDAP, - etc. - - - Bug fix : using some "cmd > /dev/stderr" (or stdout) in a script -used to make fcron send a bogus output mail. (rewrite of the code managing the -output of jobs) - - + reading directly /etc/passwd and /etc/group : this makes easier + the use of NIS, LDAP, etc. + + + Bug fix : using some "cmd > /dev/stderr" (or stdout) in a + script used to make fcron send a bogus output mail. (rewrite of + the code managing the output of jobs) + + Bug fix : typo error prevented fcrontab to be compiled on some -systems. - - + systems. + + Minor bug fix about stdout option. - - + + Minor bug fix : giving fcrontab's option -c a relative path -now works correctly. - - + now works correctly. + + - - From version 2.1.0 to 2.9.0 - + + From version 2.1.0 to 2.9.0 + Added some new options to fcron : -y, -o, -l ; and some -fcrontab options : stdout and volatile. All these permit to make fcron run in -foreground, execute all the pending jobs (mainly %-jobs), and return. May be -used, for instance, in a ppp-up script with a dialup connection to update a -software regularly. - - + fcrontab options : stdout and volatile. All these permit to make + fcron run in foreground, execute all the pending jobs (mainly + %-jobs), and return. May be used, for instance, in a ppp-up + script with a dialup connection to update a software + regularly. + + Added fcrondyn : this software allows users to dialog -dyn-amically with a running fcron daemon. Currently, it can list jobs of the -user running it (or all jobs for root). In the near future, it should be able to -run a job, change its next time and date of execution, renice a running job, -send a signal to a running job, etc. - - + dyn-amically with a running fcron daemon. Currently, it can list + jobs of the user running it (or all jobs for root). In the near + future, it should be able to run a job, change its next time and + date of execution, renice a running job, send a signal to a + running job, etc. + + All the documentation has been ported to SGML DocBook. It results on a much better HTML version, which I recommand -you use. It is installed by default in fcron documentation directory (for -instance, on my system : -/usr/share/doc/fcron-X.X.X/). - - + you use. It is installed by default in fcron documentation directory + (for instance, on my system : + /usr/share/doc/fcron-X.X.X/). + + Fcrontab.5 has been updated and improved. Some examples have -been added and some possible use of the different lines and options are -mentioned. - - + been added and some possible use of the different lines and + options are mentioned. + + Added option random, which allows an entry run periodically to -be run at a random time in its intervals of execution, instead of being run as -soon as possible. - - + be run at a random time in its intervals of execution, instead of + being run as soon as possible. + + added some more checks in fileconf.c : allow user to use -hours, days, hourly, daily, etc options only with %-lines : it is ignored if set -for a &-line, which is quite confusing for users who may type, for instance -"&hourly" instead of "%hourly". - - + hours, days, hourly, daily, etc options only with %-lines : it is + ignored if set for a &-line, which is quite confusing for users + who may type, for instance "&hourly" instead of + "%hourly". + + bug fixed : you can now use arguments in the var EDITOR and -VISUAL. - - + VISUAL. + + bug fixed : fcron used to call sometimes a sleep(-1), which -causes a freeze (no crash, but a very very long sleep :) ) under system using -LIBC5, and maybe on some non-linux systems. It was not causing any problem under -GLIBC2. Thanks go to Nick Pasich. - - - - - From version 2.0.0 to 2.1.0 - + causes a freeze (no crash, but a very very long sleep :) ) under + system using LIBC5, and maybe on some non-linux systems. It was + not causing any problem under GLIBC2. Thanks go to Nick + Pasich. + + + + + From version 2.0.0 to 2.1.0 + PAM support for fcron and fcrontab (need testing ! - help -would be appreciated). - - + would be appreciated). + + Fcron now send a mail if a job has noticenotrun set and could -not be run because of a queue full. - - + not be run because of a queue full. + + Fcron now compiles on AIX (thank you, John A. Parker !), and a -few AIX-only bugs have been fixed, but it may remain some problems to correct. -Please try, and tell me ! - - + few AIX-only bugs have been fixed, but it may remain some + problems to correct. Please try, and tell me ! + + We now use constants ROOTUID and ROOTGID instead of some -hard-coded "0", and those constants are defined by the configure script (we use -the uid/gid of the name given with the option "--with-root{name|group}"). It -allows fcron to be run on system on which root is not uid/gid 0/0. - - + hard-coded "0", and those constants are defined by the configure + script (we use the uid/gid of the name given with the option + "--with-root{name|group}"). It allows fcron to be run on system + on which root is not uid/gid 0/0. + + code cleaning. - - + + bug fixed : setting lavg to (0,0,0) used to make the line be -added in the lavg queue instead of the serial queue (but the lavgs were ignored -anyway). - - + added in the lavg queue instead of the serial queue (but the + lavgs were ignored anyway). + + bug fixed : fcrontab's "-z" option was not ignoring previous -user's fcrontab version. - - + user's fcrontab version. + bug fixed : on systems using putenv(), the var HOME, USER and -SHELL wasn't correctly assigned. On system supporting setenv() (which is the -default), the problem did not occur. (thanks go to Evan A. Zacks). - - + SHELL wasn't correctly assigned. On system supporting setenv() + (which is the default), the problem did not occur. (thanks go to + Evan A. Zacks). + + - - From version 1.1.1 to 2.0.0 - + + From version 1.1.1 to 2.0.0 + using SIGUSR2 on fcron makes it print its current schedule on -syslog and toggles on/off the printing of debug info on syslog. - - + syslog and toggles on/off the printing of debug info on + syslog. + + fcron behavior on serial and lavg queues overflow has changed -: in previous versions, it used to run a job to make room to put a new one. As -it may conduct to a overwhelming of system resources, the new job is now refused -(and not run). An error message is also logged through syslog. - - + : in previous versions, it used to run a job to make room to put + a new one. As it may conduct to a overwhelming of system + resources, the new job is now refused (and not run). An error + message is also logged through syslog. + + a mail is now sent if the job exited due to a signal, or if -exit status is non-zero. Read FAQ if you experience problems about that. - - + exit status is non-zero. Read FAQ if you experience problems + about that. + + added a FAQ. - - + + bug fixed : a midmonthly job executed after the 15th of the -month used to cause an endless loop. Thanks go to Guy Geens (thanks a lot -!). - - + month used to cause an endless loop. Thanks go to Guy Geens + (thanks a lot !). + + bug fixed : inserting a job in serial queue or running a job -not finished at startup was broken, unless the job was strict(no). - - + not finished at startup was broken, unless the job was + strict(no). + + bug fixed : some 1.1.1 changes used to make fcron impossible -to compile without sendmail (./configure's option "--with-sendmail=no"). - - + to compile without sendmail (./configure's option + "--with-sendmail=no"). + + bug fixed in sysV boot script : we know specify explicitly the -path to fcron. - - + path to fcron. + + bug fixed : unresolved error used to occur on some system not -defining getopt_long(). - - + defining getopt_long(). + + - - From version 1.1.0 to 1.1.1 - + + From version 1.1.0 to 1.1.1 + security fix : sym link attack against fcrontab. Any user -allowed to use fcrontab used to be able to remove any fcrontab, and potentially -to truncate any file to zero-length (under certain conditions, anyway). - - + allowed to use fcrontab used to be able to remove any fcrontab, + and potentially to truncate any file to zero-length (under + certain conditions, anyway). + + fcron and fcrontab now have a configuration file : fcron.conf. -It contains the default paths (spool dir, etc) and programs to use (editor, -shell, etc). Thanks to that file, several fcron processes can run simultaneously -if they have a different config (different spool dir and pid file). - - + It contains the default paths (spool dir, etc) and programs to + use (editor, shell, etc). Thanks to that file, several fcron + processes can run simultaneously if they have a different config + (different spool dir and pid file). + + added fcron's option "-m" to control the number of serial jobs -which can be executed simultaneously. - - + which can be executed simultaneously. + + added fcron's option "-n" to create a new spool dir. - - + + command line syntax of fcrontab has changed : you can know use -"user" (after the file name if any) instead of "-u user". It should make -fcrontab a little more intuitive. - - + "user" (after the file name if any) instead of "-u user". It + should make fcrontab a little more intuitive. + + It is now possible to put a user name between the time/date -fields and the shell command of a fcrontab line (for Vixie cron format -compatibility) : it is equivalent to runas(user). - - + fields and the shell command of a fcrontab line (for Vixie cron + format compatibility) : it is equivalent to runas(user). + + support of Solaris (and SysV). - - + + early support of OpenBSD. - - + + the installation scripts now use nsswitch.conf to detect if a -user or a group exists on the system. That way, naming services (NYS, ldap, etc) -are supported. - - + user or a group exists on the system. That way, naming services + (NYS, ldap, etc) are supported. + + the man page and doc is now installed by default in -$prefix/share/{man|doc} (instead of the previous $prefix/{man|doc}) ($prefix is -generally "/usr"). - - + $prefix/share/{man|doc} (instead of the previous + $prefix/{man|doc}) ($prefix is generally "/usr"). + + bug corrected : fcron used not to add a serial_sev line to -serial/lavg queue if this line was running, saying "already in serial -queue". - + serial/lavg queue if this line was running, saying "already in + serial queue". + - + bug corrected : a "all" in fcron.allow with no fcron.deny file -was not considered as an allow rule. - - + was not considered as an allow rule. + + - - From version 1.0.3 to 1.1.0 - + + From version 1.0.3 to 1.1.0 + The binary format of the binary fcrontabs has changed : there -is now no more need to reinstall the fcrontabs when upgrading fcron (but you -need to convert your fcrontabs to the new format once), and this format should -allow extensions without losing any information. - - + is now no more need to reinstall the fcrontabs when upgrading + fcron (but you need to convert your fcrontabs to the new format + once), and this format should allow extensions without losing any + information. + + better management of the errors in load/save fcrontabs -functions. - - + functions. + + the doc is a clearer about @-lines. - - + + more security tests by fcrontab in the case it is suid root -(but, if possible, it should be suid fcron as it is far more secure). - - + (but, if possible, it should be suid fcron as it is far more + secure). + + we now remove unwanted fcrontabs before loading them in memory -: well, it seems to be more logical like that :)) . - - + : well, it seems to be more logical like that :)) . + + bug fix : using options first with a &-line may have led to -some problems during the first read by fcron (mail send erroneously if -noticenotrun was used, bad set of the first execution's time and date or -immediate execution if bootrun was set : in fact, the line was not recognized as -a new line). - - + some problems during the first read by fcron (mail send + erroneously if noticenotrun was used, bad set of the first + execution's time and date or immediate execution if bootrun was + set : in fact, the line was not recognized as a new line). + + bug fix : fcron used not to be able to be compiled from any -directory because of an absent -I. line option for the compiler (the config.h -file was not found). - - + directory because of an absent -I. line option for the compiler + (the config.h file was not found). + + - - From version 1.0.2 to 1.0.3 - + + From version 1.0.2 to 1.0.3 + fcron can now be configured and compiled from any directory -(not only from the source dir). - - + (not only from the source dir). + + bug fix : fcron now sets umask to the value it got at start -before running a job. - - + before running a job. + + bug corrected : a bug used to make the "truncated" system not -to work correctly, so a too long log message used to make fcron crash. - - + to work correctly, so a too long log message used to make fcron + crash. + + - - From version 1.0.1 to 1.0.2 - + + From version 1.0.1 to 1.0.2 + the user for whom a job is run is now logged. - - + + installation script is now more explicit about what it is -going to do. - - + going to do. + + a boolean value can now also be set by "yes" and "no". - - + + bug corrected : bootrun option works again. - - + + bug corrected : shell variable containing underscore (_) used -to be rejected. - - + to be rejected. + + bug corrected : installation script used not to check if user -fcron was in group fcron, in which case fcrontab doesn't work correctly (it -cannot, in that case, read the fcrontabs for non-privileged users). - - + fcron was in group fcron, in which case fcrontab doesn't work + correctly (it cannot, in that case, read the fcrontabs for + non-privileged users). + + - - From version 1.0.0 to 1.0.1 - + + From version 1.0.0 to 1.0.1 + security fix : a user used to be able to read a file owned by -root if root runs a "fcrontab -u user -e". - - + root if root runs a "fcrontab -u user -e". + + - - From version 0.9.5 to 1.0.0 - + + From version 0.9.5 to 1.0.0 + added fcron's option "-s" to control the time between two -saves of the fcrontabs on disk. - - + saves of the fcrontabs on disk. + + installation scripts now support better FreeBSD and sh. - - + + bug corrected : configure's options prefix and -without-sendmail used not to work. - - + without-sendmail used not to work. + + bug corrected : installing an fcrontab by "fcrontab file" -wasn't working correctly with a relative path (a path not beginning by a -"/"). - - + wasn't working correctly with a relative path (a path not + beginning by a "/"). + + - - From version 0.9.4 to 0.9.5 - + + From version 0.9.4 to 0.9.5 + security fix : the jobs of a fcrontab reinstalled by root used -to be run as root (until the next action of the owner on the fcrontab). - - + to be run as root (until the next action of the owner on the + fcrontab). + + added options strict and noticenotrun to tell fcron -respectively if a job should be removed from lavg queue if its execution -interval is exceeded, and if fcron should mail user to report the non-execution -of a job. - - + respectively if a job should be removed from lavg queue if its + execution interval is exceeded, and if fcron should mail user to + report the non-execution of a job. + + added option nolog in order to log only errors (i.e. no -message like "job x started"). This can help to reduce the disk access and save -energy on a laptop, and make the log more readable if some jobs are run very -often. - - + message like "job x started"). This can help to reduce the disk + access and save energy on a laptop, and make the log more + readable if some jobs are run very often. + + better handle of changes of the uids of users in /etc/passwd -(no more need to reinstall the fcrontabs). - - + (no more need to reinstall the fcrontabs). + + fcron.deny and fcron.allow files are now owned by root (they -used to be owned by user fcron). - - + used to be owned by user fcron). + + added ./configure's option --with-answer-all to be able to use -"make install" in a non-interactive way (can be useful for automatic -installers). - - + "make install" in a non-interactive way (can be useful for + automatic installers). + + added option --with-rootname and --with-rootgroup to -./configure script for a better support of exotic systems. - - + ./configure script for a better support of exotic systems. + + bug corrected in make install (script user-group) : the script -used not to handle correctly the absence of both useradd and adduser commands. -This script now checks and tries to add a group fcron if necessary. - - + used not to handle correctly the absence of both useradd and + adduser commands. This script now checks and tries to add a + group fcron if necessary. + + - - From version 0.9.3 to 0.9.4 - + + From version 0.9.3 to 0.9.4 + security improvement : after the (horrible) root exploit found -in version 0.9.3, I decided to improve fcron/fcrontab's security. I've included -some strong (I hope :)) ) tests in fcron to ensure that only root can run -commands as superuser and use option runas. Even an corrupted fcrontab should -not be able to get root's privileges. Pretty reassuring, isn't it ? - - + in version 0.9.3, I decided to improve fcron/fcrontab's + security. I've included some strong (I hope :)) ) tests in fcron + to ensure that only root can run commands as superuser and use + option runas. Even an corrupted fcrontab should not be able to + get root's privileges. Pretty reassuring, isn't it ? + + runfreq(1) lines have been replaced and extended by a new kind -of line : the lines beginning by a "%". It's now possible to tell fcron to run a -command once an hour, a week, etc, but only at some specified moments. For -instance : '%weekly * 4-7 echo "foo"' will run the command 'echo "foo"' once a -week between 4 and 7 in the morning. (see "man 5 fcrontab" for more -details). - - + of line : the lines beginning by a "%". It's now possible to tell + fcron to run a command once an hour, a week, etc, but only at + some specified moments. For instance : '%weekly * 4-7 echo "foo"' + will run the command 'echo "foo"' once a week between 4 and 7 in + the morning. (see "man 5 fcrontab" for more details). + + installation process improved : user is now consulted before -anything is done about installation in boot scripts, etc. The default username -of fcron is now ... fcron ! (this is more secure than daemon, which can be used -by other programs). - - + anything is done about installation in boot scripts, etc. The + default username of fcron is now ... fcron ! (this is more secure + than daemon, which can be used by other programs). + + fcron now adds the host name to the addresses of the mails it -sends. - - + sends. + + fcrontab determines the identity of the running user by his -uid (it used to use the var USER). That way, fcrontab should act as crontab -under a "su". - - + uid (it used to use the var USER). That way, fcrontab should act + as crontab under a "su". + + bug fixed : a tmp file was not removed after a "fcron -z" - - + + bug fixed in fcrontab : an expression of the form "start-stop" -with start > stop used to be incorrectly managed by fcron. - - + with start > stop used to be incorrectly managed by fcron. + + bug fixed : when fcron and fcrontab were installed under a -non-privileged user rights, a normal user used to be not able to use -fcrontab. - - + non-privileged user rights, a normal user used to be not able to + use fcrontab. + + bug fixed : while fcrontab was asking user if he would like to -correct an erroneous line, the answer was not correctly handled. - - + correct an erroneous line, the answer was not correctly + handled. + + - - From version 0.9.2.1 to 0.9.3 - + + From version 0.9.2.1 to 0.9.3 + installation scripts improved. - - + + added code to avoid infinite loops. - - + + bugs corrected in the functions to set the time and date of -next execution. - - + next execution. + + bug corrected in the check for invalid lines. - - + + - - From version 0.9.2 to 0.9.2.1 - + + From version 0.9.2 to 0.9.2.1 + minor bug corrected in Makefile - - + + - - From version 0.9.1 to 0.9.2 - + + From version 0.9.1 to 0.9.2 + fcron now uses autoconf (the configure script), so it should -be easier to compile and install it and various systems. - - + be easier to compile and install it and various systems. + + support of lavg options for all systems where getloadavg() is -defined (BSD unix, etc) and on Linux systems with a proc filesystem (fcron can -use /proc/loadavg). - - + defined (BSD unix, etc) and on Linux systems with a proc + filesystem (fcron can use /proc/loadavg). + + a job can now be executed several times simultaneously if -option exesev is set to 1. - - + option exesev is set to 1. + + user can determine if a job can be put several times in the -serial queue simultaneously thanks to option serialonce. - - + serial queue simultaneously thanks to option serialonce. + + fcron does not wait anymore for the completion of all jobs of -a file before deleting it from memory. - - + a file before deleting it from memory. + + fcron handles correctly the jobs which are both serial and -lavg. - - + lavg. + + fcron now runs under a specific user and group (other than -root) for basic security reasons. - - + root) for basic security reasons. + + bug corrected : fcron used to crash after a file was deleted -from memory in some conditions. - - + from memory in some conditions. + + corrected the bug which used to appear when a line was put -several times in the serial queue : in this case, fcron used not to count -correctly the number of running serial jobs. - - + several times in the serial queue : in this case, fcron used not + to count correctly the number of running serial jobs. + + bug corrected : fcrontab used not to remove the temporary file -it creates if no modification where done to a file after an edition using the -e -option and on errors. - - + it creates if no modification where done to a file after an + edition using the -e option and on errors. + + bug corrected : fcrontab now defines correctly the remain -value of a line based on time and date beginning with a "&" but without runfreq -definition. - - + value of a line based on time and date beginning with a "&" but + without runfreq definition. + + bug corrected : fcron used to not install correctly a file -edited if a correction was made. - - + edited if a correction was made. + + bug corrected : reset option was not working correctly when -set to a single line. - - + set to a single line. + + - - From version 0.9.0 to 0.9.1 - + + From version 0.9.0 to 0.9.1 + support of the option mailto for each line (it used to be set -for the whole file). - - + for the whole file). + + the value of the runas and mailto options are now stored -internally as a uid number : you must reinstall all the system's fcrontabs if -you change the uid of a user. - - + internally as a uid number : you must reinstall all the system's + fcrontabs if you change the uid of a user. + + Support of options "lavg*", in order to run a job under a -specific 1, 5 and/or 15 minutes system load average value(s). When the job -should be run, it is placed in a specific queue and the load average is checked -regularly until the right value(s) is/are got. The options "lavgor" and -"lavgand" permits users to tell fcron if they prefer to perform a logic OR or -AND between the 1, 5 and 15 load average values. The option "until" can be use -to force the execution of a job after a determined timeout if the right -conditions to run the job are not filled. - - + specific 1, 5 and/or 15 minutes system load average + value(s). When the job should be run, it is placed in a specific + queue and the load average is checked regularly until the right + value(s) is/are got. The options "lavgor" and "lavgand" permits + users to tell fcron if they prefer to perform a logic OR or AND + between the 1, 5 and 15 load average values. The option "until" + can be use to force the execution of a job after a determined + timeout if the right conditions to run the job are not + filled. + + fcron now uses putenv() in place of setenv() (setenv() is not -POSIX compliant). - - + POSIX compliant). + + a mailto option set to "" is now equivalent to -"mail(false)". - - + "mail(false)". + + corrected the bug which used to make a bootrun and runfreq(1) -job executed twice when fcron's start occurs in an interval of execution of the -job. - - + job executed twice when fcron's start occurs in an interval of + execution of the job. + + corrected the bug which used to make fcron crash after -serial_array is resized. - - + serial_array is resized. + + - - From version 0.8.3 to 0.9.0 - + + From version 0.8.3 to 0.9.0 + support of options in fcrontabs. Options can be specific to a -line or defined once for every line located after their definition (a special -option "reset" set all options to their default). Some options also have too -names: a long name and an abbreviation. - - + line or defined once for every line located after their + definition (a special option "reset" set all options to their + default). Some options also have too names: a long name and an + abbreviation. + + jobs can now be run be run one after the other (option -"serial") : when the job should normally be run, it is added to a queue, which -entries are executed one by one. It permits to avoid the use of a lot of system -resources for a brief moment by the simultaneous execution of several -tasks. - - + "serial") : when the job should normally be run, it is added to a + queue, which entries are executed one by one. It permits to avoid + the use of a lot of system resources for a brief moment by the + simultaneous execution of several tasks. + + jobs can be run at system start up if they should have been -run during system down time (option "bootrun"). - - + run during system down time (option "bootrun"). + + root can run jobs as an another user (option "runas") - - + + user can set a nice value to a job, but only root can use a -negative value (a negative value will increase priority) - - + negative value (a negative value will increase priority) + + user can choose to perform a logic AND or a logic OR between -day of month and day of week (option "dayor" and "dayand") - - + day of month and day of week (option "dayor" and "dayand") + + user can choose to mail the output of jobs (option "mail") if -any, and can force fcron to send a mail even if output is zero-length (option -"forcemail"). - - + any, and can force fcron to send a mail even if output is + zero-length (option "forcemail"). + + fixed the bug which used to make fcron run a job with a -runfreq set to 1 at a wrong time. - - + runfreq set to 1 at a wrong time. + + fixed a bug which used to make fcrontab crash after several -corrections in edit mode. - - + corrections in edit mode. + + - - From version 0.8.2 to 0.8.3 - + + From version 0.8.2 to 0.8.3 + (all this bugs appeared in version 0.8.2 :) - - + + fixed the bug which used to make fcron crash after a -SIGHUP - - + SIGHUP + + fixed the bug which used to prevent fcron from running some -job based on time and date - - + job based on time and date + + fixed the bug which used to makes fcron run the jobs one -second too late - - + second too late + + - - From version 0.8.1 to 0.8.2 - + + From version 0.8.1 to 0.8.2 + code has been optimized : The jobs are now queued in order of -execution. It permits avoid useless tests of all jobs every time fcron wakes up, -speeds up the determination of the time fcron should sleep, speeds up the -processing after the end of a job, etc. I don't know why I haven't made it -before :-) ... - - + execution. It permits avoid useless tests of all jobs every time + fcron wakes up, speeds up the determination of the time fcron + should sleep, speeds up the processing after the end of a job, + etc. I don't know why I haven't made it before :-) ... + + fcrontab has been improved : it is now more stable (many bugs -which used to make fcrontab crash in case of errors in the fcrontab has been -fixed). Plus, it now asks if you want to make corrections if needed when -editing. - - + which used to make fcrontab crash in case of errors in the + fcrontab has been fixed). Plus, it now asks if you want to make + corrections if needed when editing. + + - - From version 0.8.0 to 0.8.1 - + + From version 0.8.0 to 0.8.1 + ported to FreeBSD 4.0 - - + + - - From version 0.7.0 to 0.8.0 - + + From version 0.7.0 to 0.8.0 + corrected the bug which keep normal users from listing and -editing their current configuration file with fcrontab -l or -e. - - + editing their current configuration file with fcrontab -l or + -e. + + corrected the bugs which used to block fcron when a task was -marked for execution but fcron stopped before it has been launched, and when -fcron stopped after the end of a job but before the output has been -mailed. - - + marked for execution but fcron stopped before it has been + launched, and when fcron stopped after the end of a job but + before the output has been mailed. + + day of week 0 and 7 now both mean Sunday. - - + + the abbreviations of months and day of week are not any more -case dependent. - - + case dependent. + + months are now defined from 1 to 12 (and not from 0 to 11) (it -was a little bit illogical :-). - - + was a little bit illogical :-). + + you can now force spaces in strings if you place them in -quotes. - - + quotes. + + I discovered ispell :-) ... - - + + I've added a kind of signature in the formated configuration -files in order to keep the daemon from attempting to read an old configuration -file which doesn't use the same syntax. - - + files in order to keep the daemon from attempting to read an old + configuration file which doesn't use the same syntax. + + You can now install a file with fcrontab from standard -input. - - + input. + + others minor adds and bug corrections. - - - + + + - + - - Todo - Here are some things that should be done ... Note that some of these entries - are just some ideas, which may be done in the long run. - If you plan to help me, please send a mail at &email; to prevent two -people from doing the same thing. You can send me some propositions as -well. - - - add psgml-docbook-dtd.cache, psgml-ecat.file to RCS & CVS - - - mail of wohler@newt.com - - - crash when /var is full ??? - - - problem with daylight savings ? ("already running" ...) (cf. Nick's mails -- Warning : he has a new address)) - - - add a new FAQ entry : what should be done to completely replace vixie cron by fcron ? Are there some incompatibilities ? - - - bug fix : makewhatis does not work correctly with fcron 2.9.0 - and following - Help is welcome to catch this bug ! - - - Use directory notifications (?) (portable ?) (cf. dnotify) - - - PAM support (included in fcron, but needs more tests by people -using PAM - not implemented in fcrondyn : is it needed if fcrondyn anyway ?) - - - implement more commands for fcrondyn, and make it more secure -and reliable - - - add a timezone option instead of the tzdiff (so it would look like !timezone(europe/paris)) (?) - - - For environment settings, make a var substitution. - - - add a return code for jobs which would mean that they should -not be run again (in case of an error, etc...). - - - add a system of modules : at startup, fcron loads some modules -(.so files). Then, when fcron should run the job, it calls a function of the -module, and let it manage the job (threads ?). (do linux dlopen(), etc exist on -other systems ? - yes : thanks Harring ;) dlopen exists on all POSIX system - even windoze - abait it does not use the same insterface of function calls. But it can be easily implemented to port to another system.). - - - (related to the system of modules ? create a kind of dependencies ?) -Add a way to run a job only if a command returns true. It would permit, for instance, -to run some jobs on a laptop only if it is on AC power. - - - add a system of data flow - - - Add a way to stop a job (SIGSTOP) if the lavg gets to high, and -restart it (SIGCONT) when the lavg has decreased. - - - Add a timeout for task completion : if a task takes more than -a specified timeout, then start another script with the initial task PID as argument. -That would allow a kill with different signals (-HUP, -TERM -STOP, .... or -any other action like sending a mail to sysadmin to alert him/her that a task is taking -too much time and that he has to have a look at it.) - - - Add a directory similar to xinet.d or logrotate.d - to add job entries (?). - - - + + Todo + Here are some things that should be done ... Note that some of these + entries are just some ideas, which may be done + in the long run. + If you plan to help me, please send a mail at &email; to prevent + two people from doing the same thing. You can send me some propositions as + well, or ask me to move something to the top of the heap ;) . + + High priority + + + add psgml-docbook-dtd.cache, psgml-ecat.file to RCS & + CVS + + + mails from wohler@newt.com : improve the doc + change (?) the + name of fcrondyn -> fcronc ?? + + + crash when /var is full ??? + + + problem with daylight savings ? ("already running" ...) + (cf. Nick's mails -- Warning : he has a new address)) + + + add a new FAQ entry : what should be done to completely + replace vixie cron by fcron ? Are there some incompatibilities + ? + + + add an option to prevent fcron from running a job if the + system is running on battery (anacron does it ?) + + + bug fix : makewhatis does not work correctly with fcron 2.9.0 + and following + Help is welcome to catch this bug ! + + + + + Low priority + + + Use directory notifications (?) (portable ?) + (cf. dnotify) + + + PAM support (included in fcron, but needs more tests by people + using PAM - not implemented in fcrondyn : is it needed in + fcrondyn anyway ?) + + + implement more commands for fcrondyn, and make it more secure + and reliable + + + add a timezone option instead of the tzdiff (so it would look + like !timezone(europe/paris)) (?) + + + For environment settings, make a var substitution. + + + add a return code for jobs which would mean that they should + not be run again (in case of an error, etc...). + + + + + Ideas + + + add a system of modules : at startup, fcron loads some modules + (.so files). Then, when fcron should run the job, it calls a + function of the module, and let it manage the job (threads + ?). (do linux dlopen(), etc exist on other systems ? - yes : + thanks Harring ;) dlopen exists on all POSIX system - even + windoze - abait it does not use the same insterface of function + calls. But it can be easily implemented to port to another + system.). + + + (related to the system of modules ? create a kind of + dependencies ?) Add a way to run a job only if a command returns + true. It would permit, for instance, to run some jobs on a laptop + only if it is on AC power. + + + add a system of data flow + + + Add a way to stop a job (SIGSTOP) if the lavg gets to high, + and restart it (SIGCONT) when the lavg has decreased. + + + Add a timeout for task completion : if a task takes more than + a specified timeout, then start another script with the initial + task PID as argument. That would allow a kill with different + signals (-HUP, -TERM -STOP, .... or any other action like sending + a mail to sysadmin to alert him/her that a task is taking too + much time and that he has to have a look at it.) + + + Add a directory similar to xinet.d or logrotate.d to add job + entries (?). + + + + -- 2.40.0