• Fcron

    From jayjwa@jayjwa@atr2.ath.cx.invalid to alt.os.linux.slackware on Mon May 25 17:20:46 2026
    From Newsgroup: alt.os.linux.slackware

    I've been using fcron on Slackware for years. I like the syntax better
    than having to speak asteriskese. fcron-3.4.0 is the latest version as
    of this writing. Note previous versions won't build anymore with the GCC
    we have now.

    http://fcron.free.fr/download.php#fcron3.4.0

    This is the line to build it with PAM. Note that it really wants
    Docbook, else the build/install will fail.

    ./configure --prefix=/usr --sysconfdir=/etc
    --with-sendmail=/usr/sbin/sendmail --with-editor=/usr/bin/nano --with-piddir=/var/run/fcron --with-fifodir=/var/run/fcron --with-spooldir=/var/spool/fcron --with-docdir=/usr/doc
    --with-sysfcrontab --with-boot-install=no --with-selinux=no --with-dsssl-dir=/usr/share/sgml/docbook/dsssl-stylesheets-1.79/

    If your Docbook install isn't up-to-speed (I loathe Docbook), install
    the binaries as-is and copy the .pam files into place at /etc/pam.d
    . They are in the /files/ subdirectory of the source tarball. The binary permissions are thus:

    -rws--s--x 1 fcron fcron 44K May 25 16:22 /usr/bin/fcrondyn*
    -rws--x--- 1 root fcron 35K May 25 16:22 /usr/bin/fcronsighup*
    -rws--s--x 1 fcron fcron 76K May 25 16:22 /usr/bin/fcrontab*

    and the user/group entries are like

    grep fcron /etc/{passwd,group}
    /etc/passwd:fcron:x:15:15:fcron daemon user:/var/spool/fcron:/sbin/nologin /etc/group:fcron:x:15:fcron

    You can edit the startup scripts to not run whatever cron Slackware is
    using now and instead run fcron. In rc.M:

    # Start Fcron. Choose either this for dcron, not both.
    if [ -x /usr/sbin/fcron ]; then
    # Make sure run dir exists
    mkdir -p /var/run/fcron
    fcron -c /etc/fcron.conf -b
    fi

    Now users can edit/set their crontabs.
    env VISUAL=emacs fcrontab -e
    2026-05-25 16:28:18 INFO fcrontab : editing jayjwa's fcrontab
    no fcrontab for jayjwa - using an empty one
    Modifications will be taken into account at 16:28:48.

    An example that mails the running processes every 2 minutes:
    @mailto(jayjwa) 2 /bin/ps aux

    Here's what it looks like running (/var/log/cron or wherever you told
    syslog to send it):
    May 25 16:28:48 atr2 fcron[10083]: adding new file jayjwa
    May 25 16:28:49 atr2 fcrontab[10308]: listing jayjwa's fcrontab
    May 25 16:30:46 atr2 fcron[10355]: Job '/usr/sbin/uucico --system velkhana --ifwork --quiet' started for user systab (pid 10357)
    May 25 16:30:46 atr2 fcron[10355]: Job '/usr/sbin/uucico --system velkhana --ifwork --quiet' completed
    May 25 16:30:48 atr2 fcron[10360]: Job '/bin/ps aux' started for user jayjwa (pid 10362)
    May 25 16:30:48 atr2 fcron[10360]: Job '/bin/ps aux' completed (mailing output) May 25 16:30:51 atr2 fcrontab[10370]: listing systab's fcrontab
    May 25 16:31:23 atr2 fcron[10382]: Job '/usr/sbin/uucico --system zorah --ifwork --quiet' started for user systab (pid 10384)
    May 25 16:31:23 atr2 fcron[10382]: Job '/usr/sbin/uucico --system zorah --ifwork --quiet' completed

    Remove it later:
    env VISUAL=emacs fcrontab -r
    2026-05-25 16:33:53 INFO removing jayjwa's fcrontab
    Modifications will be taken into account at 16:33:58.

    root's and the system crontab are separate. Here's an example of the
    types of things you can do with it system-wide.

    # fcrontab -u systab -l

    2026-05-25 16:33:12 INFO listing systab's fcrontab
    ## System Wide Crontab
    ##
    ## This file defines a number of jobs for the cron daemon to do that pretain to ## the system as a whole. Most all of the non-personal system-level things are ## to be kept in this file for simple, one-place organization.
    ##
    ## NOTE: MAKE SURE THIS FILE AND FCRON'S INTERNAL COPY SYNC!!
    ## (Or funny, unexpected things might happen)

    # No mail for any of these by default, but definately report
    # if the command wasn't run for some reason !mail(false),noticenotrun(true),nice(18)

    # Enter a "Restart" mark in the logfile for sadc and make sure that
    # logfile is created just after midnight each day so that the 'sar'
    # command with always produce output instead of 'file not found'
    & 1 0 * * * /usr/lib64/sa/sadc -

    # Generate a summary of process accounting each midnight
    # This is only the report generation, and is still needed.
    %nightly * 23 /usr/lib64/sa/sa2 -A

    # Create saveacct and useracct files from "pacct" accouting file each night. %nightly * 23 sa --merge

    # Keep DB for nsswitch usage up to date with /etc/ files
    %nightly * 23 make -C /var/db

    # Keep a running list of kmods so it will be quick to rebuild the kernel.
    # This command looks and sees what is in use each time it is run.
    %middaily * 12-13 /usr/bin/modprobed-db store

    # Update the man page data base for new pages.
    # Command for mandb 'man'
    %middaily * 12-13 mandb -q

    # makewhatis for regular 'man'
    #%middaily * 12-13 /usr/sbin/makewhatis -s '0p 1p 3p 1 2 3 4 5 6 7 8 9 n' -w

    # Run updatedb daily, too. This is for the "locate" command.
    # Its database is at /var/lib/mlocate/mlocate.db
    %nightly * 4-5 /usr/bin/updatedb --prunepaths="/tmp /sys /var/tmp /proc /dev /root /mnt /lost+found /home /run /media"

    # Logrotate. Rotate old logs each night
    %nightly * 5-6 /usr/sbin/logrotate /etc/logrotate.conf

    # Update website search system (htdig). Make sure files have
    # correct permissions in /var/lib/htdig if there's a problem.
    %weekly * 2-3 /usr/bin/htdig -i -v

    # UUCP systems. Have the daemon check for any queued jobs/mail/news to be sent. # Check for work for various systems. Only start up if work to do, every
    # 20 minutes of system uptime.
    @ 20 /usr/sbin/uucico --system kulve --ifwork --quiet
    @ 20 /usr/sbin/uucico --system kirin --ifwork --quiet
    @ 20 /usr/sbin/uucico --system zorah --ifwork --quiet
    @ 20 /usr/sbin/uucico --system velkhana --ifwork --quiet

    # Scan the system font dirs nightly to keep cache fresh
    %nightly * 4-5 fc-cache -r -s /usr/share/fonts/OTF /usr/share/fonts/TTF

    ## Complex Fixed System Jobs
    ##
    ## These jobs run as one-shot jobs from the /etc/cron.d directory
    ## and only appear in the system crontab. Most of these tasks are
    ## implemented as scripts that do a task involving many lines of
    ## code that can't well be written as a normal fcron job
    ##
    %nightly * 2-3 /usr/bin/run-parts /etc/cron.d

    ## EOF
    --
    PGP Key ID: 781C A3E2 C6ED 70A6 B356 7AF5 B510 542E D460 5CAE
    "The Internet should always be the Wild West!"
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From Henrik Carlqvist@Henrik.Carlqvist@deadspam.com to alt.os.linux.slackware on Tue May 26 05:33:28 2026
    From Newsgroup: alt.os.linux.slackware

    On Mon, 25 May 2026 17:20:46 -0400, jayjwa wrote:
    fcron-3.4.0 is the latest version as

    I haven't tried fcron myself, but see that there is a SlackBuild for it
    at: https://slackbuilds.org/repository/15.0/system/fcron/?search=fcron

    That SlackBuild seem to build with some slight other options for
    configure.

    regards Henrik
    --- Synchronet 3.22a-Linux NewsLink 1.2
  • From John Forkosh@forkosh@panix.com to alt.os.linux.slackware on Tue May 26 09:11:26 2026
    From Newsgroup: alt.os.linux.slackware

    jayjwa <jayjwa@atr2.ath.cx.invalid> wrote:
    I've been using fcron on Slackware for years. I like the syntax better
    than having to speak asteriskese. fcron-3.4.0 is the latest version as
    of this writing. Note previous versions won't build anymore with the GCC
    we have now.
    <snip>

    If they used to compile without problems, then maybe
    try cc -ansi etc or maybe cc -std=c89 etc
    (man cc for details). I've had the same
    "won't build anymore..." with some of my own programs,
    which used to compile without any complaints,
    even using cc -pedantic
    --
    John Forkosh
    --- Synchronet 3.22a-Linux NewsLink 1.2