[______TOC_______] [NEXT CHAPTER]

1 Overview

    digest is "send articles once N hours" not in realtime.
    /usr/local/fml/msend.pl doed this service.  Please run this program
    periodically for example by cron(8).  cron is built-in in UNIX
    usually.

    	% crontab /var/spool/ml/elena/crontab

    1.1	What fml administrator needs to do

    inject /var/spool/ml/elena/crontab to crontab by crontab(1).
    /var/spool/ml/elena/crontab is created by "makefml newml" command.

    % makefml newml elena
    % crontab /var/spool/ml/elena/crontab

    1.2	What the user to do

    	matome 3mp

    Each user sends "matome option" command to elena-ctl@fml.org (in
    "elena" ML case). Here "option" is "hour" + "fop".  "fop" is file
    format in compression.

    See /var/spool/ml/elena/help for more details.

    To back again to real time delivery, send "matome 0" to control
    address.

    	matome 0

    1.3	Cron (FML Vixie cron compatible program, bin/cron.pl)
    1.3	Cron (FML Vixie cron compatible program, bin/cron.pl)

    	man cron
    	man crontab

    The present OS may have a cron for users. Please check it in the
    first.  e.g. man cron, man crontab If only root can set up OS's cron
    so a general user cannot control cron, you can use FML cron (clone of
    4.4BSD cron).

    FML cron sleeps and runs once a minute.  If the crontab entry has a
    job now, cron run it.  It is same as UNIX cron daemon.

    You can run cron manually. fml.pl can run cron.pl automatically. If
    fml.pl automatically runs cron.pl, it runs each cron.pl for each
    ML. It is of no use. It is enough that one cron.pl for one user.

    fml.pl runs only one cron.pl, not plural for one ML. fml.pl checks
    $CRON_PIDFILE ($DIR/var/run/cron.pid) to ensure only one cron.pl
    running.

    cron.pl may be down. OS does not run cron.pl automatically, so
    digest delivery does not run until you are aware of it.
    For it, you can set up fml.pl runs cron.pl when mail comes in.

    In default cron.pl itself exits, and new cron.pl runs to avoid strange
    behavior when a process runs long long time.
    However -n option enables infinite running.

    SYNOPSIS
    	cron.pl [-a] [-d] [-b43] [-fcrontab] [-bd] $DIR [$LIBDIR]

        -d                debug mode
        -a                run eternally(default: 180sec. = 60sec. * 3times)
        -n                working all times without RESTART
        -mtimes           run from now to (60 * times) sec. after
        -fcrontab-file    alternative crontab
        -h                show this help and exit
        -bd		      daemon (Become Daemon)
        -bOSTYPE          -b43(OSTYPE = 43): 4.3BSD Like. not mailed to you

    -b43 option set

    	$CRON_NOTIFY    = 0; (default 1)

    In default, cron.pl notify the cron job log to the owner of the
    process by mail (like 4.4BSD cron).

    Also in default, cron.pl does not detach the current tty, that is, not
    become a daemon since becoming daemon does not work well on an OS.

    	-onotty

    cron.pl becomes daemon by itself. In default

    	$NOT_USE_TIOCNOTTY = 1;		# no ioctl

    1.4	Vixie Cron

    4.4BSD has Vixie Cron, so you can use it for yourself. Please use it
    on 4.4BSD. Also firstly you should check your OS's manuals.

    cron (8) - daemon to execute scheduled commands (Vixie Cron)
    crontab (1) - maintain crontab files for individual users (V3)
    crontab (5) - tables for driving cron

    An old OS has no such cron. However an administrator installed Vixie
    cron. It is of value to trek your system:-)

    cron.pl is a clone for such an old OS.

    1.5	How To Install cron.pl

    The system in the bootstrap time does not run cron.pl automatically.
    We would like to run cron.pl anyway. What should we do?

    To run cron.pl, the arguments are

    	% cron.pl $DIR(config.ph location) $LIBDIR(lib*.pl location)

    The problem is how to run cron!.  For example, you can set up the
    following ways:

       1. 	set up your ~/.login which run cron.pl. When you log in the
    	system, you run cron.pl. Cron.pl always checks other cron.pl
    	runs or not, so	only one cron.pl runs.

       2. runs cron.pl manually :)

       3. fml.pl runs cron.pl when mail comes in.

    config.ph example for case 3 is

    	$CRON_PIDFILE = "$DIR/var/run/cron.pid";
    	$CRONTAB      = "$DIR/etc/crontab";

    	$FML_EXIT_PROG = "$LIBDIR/bin/cron.pl $DIR $LIBDIR -a";

    cron.pid ($DIR/var/run/cron.pid) corresponds to /var/run/cron.pid but
    exists for each ML under FML.

    When you run "makefml newml", FML sets up each crontab for each ML.
    It is an example for Vixie cron.  You can use it on 4.4BSD and under
    Vixie cron.

    [Example]
    	% makefml newml elena
    	  ...
    	% cd /var/spool/ml/elena
    	% crontab crontab

[______TOC_______] [NEXT CHAPTER]