FCRON(8)

πŸ“¦
version 3.4.1 Β· 2 versions
, in arch rolling, nixpkgs unstable

πŸ’– fcron(8) β€” the fcron manual page, bestie edition πŸ’–

okay so welcome to fcron(8), the manual page for fcron β€” the daemon that executes your scheduled tasks. she's iconic, she's punctual, she's got main character energy, and by the end of this page you two are gonna be besties 🫢


✨ NAME ✨

fcron β€” daemon to execute scheduled tasks


🌸 SYNOPSIS 🌸

fcron [ -c file ] [ -d ] [ -b ] [ -s time ] [ -m num ] [ -q num ]

fcron [ -c file ] [ -d ] [ -f ] [ -o ] [ -y ] [ -p file ] [ -l time ]

fcron [ -n dir ]

fcron [ -h ]

fcron [ -V ]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the vibe. Fcron should be started from /etc/rc or /etc/rc.local. Unless you give her the -f (or --foreground) option, she returns immediately β€” like, immediately immediately β€” so you do not need to start her with &. she handles that herself, she's got it πŸ’…

Here's what she actually does, step by step, no cap:

  1. Fcron loads the users' fcrontabs (peep fcrontab(5)) that were previously installed by fcrontab (peep fcrontab(1)).
  2. Then she calculates the time and date of each job's next execution.
  3. Then she figures out how long she has to sleep, and she sleeps for that amount of time.
  4. When she wakes up, she checks all the loaded jobs and runs them if needed.
  5. When a job is executed, fcron forks, changes her user and group permissions to match those of the user the job is being done for, executes that job, and mails the outputs to the user (this can be changed though β€” see fcrontab(5)).

Informative messages about what fcron is doing get sent to syslogd(8) under facility cron, priority notice. Warning messages go out at priority warning, and error messages at priority error. each one in its lane, we love to see it ✨

Note: fcron sleeps at least 20 seconds after she's been started before executing a job, to avoid using too many resources during system boot. she's being considerate, let her rest 😴

πŸŽ€ OPTIONS πŸŽ€

  • -f, --foreground β€” Don't fork to the background. In this mode, fcron will output informational messages to standard error as well as to syslogd. like she's talking to you and journalling about it πŸ’–
  • -b, --background β€” Force running in background, even if fcron has been compiled to run in foreground as default. she said not today to the compile-time default 🫢
  • -s time, --savetime time β€” Save fcrontabs on disk every time sec (default is 1800). she's a saver, not a thrower-awayer πŸŽ€
  • -m num, --maxserial num β€” Run at most num serial jobs simultaneously. By default, this value is set to 1.

See also: option serial in fcrontab(5).

  • -q num, --queuelen num β€” Sets the sizes of the queues that are used to manage serial jobs and the lavg queue each to num. This means that (A) at most num serial jobs can be in the waiting state and (B) at most num jobs can wait until the system average load drops below a set value. two limits, one flag, we love an efficient queen πŸ‘‘
  • -c file, --configfile file β€” Make fcron use config file file instead of the default config file /usr/local/etc/fcron.conf. To interact with that running fcron process, fcrontab must use the same config file (which is defined by fcrontab's option -c). That way, several fcron processes can run simultaneously on a single system β€” but each fcron process must have a different spool dir and pid file from the other processes. no sharing, bestie, that's the rule πŸ’€
  • -o, --once β€” Execute all jobs that need to be run at the time fcron was started, wait for them, then return. Sets --sleeptime to 0. May be especially useful when used with options -y and -f in a script run, for instance, at dialup connection. one and done, periodt ✨

See also: fcrontab's options volatile, stdout.

  • -y, --nosyslog β€” Don't log to syslog at all. May be useful when running in foreground. she's going off the grid, respectfully πŸ™ˆ
  • -p file, --logfilepath file β€” If set, log to the file given as argument. fcron will log to both that file and syslog in parallel unless -y is also set. two diaries, no drama πŸ¦‹
  • -l time, --firstsleep time β€” Sets the initial delay (in seconds) before any job is executed, default to 20 seconds.
  • -n dir, --newspooldir dir β€” Create dir as a new spool directory for fcron. Set correctly its mode and owner. Then, exit. she sets it up, she hands it off, she leaves 🌈
  • -h, --help β€” Display a brief description of the options.
  • -V, --version β€” Display an informational message about fcron, including its version and the license under which it is distributed. cute AND legally transparent πŸ’…
  • -d, --debug β€” Run in debug mode (more details on stderr β€” if option -f is set β€” and in log file). she's telling you everything, every little thing πŸ“

⭐ RETURN VALUES ⭐

Fcron returns 0 on normal exit, and 1 on error. zero means slay, one means something's up 😭


πŸ’œ SIGNALS πŸ’œ

  • SIGTERM β€” Save configuration (time remaining until next execution, time and date of next execution, etc), wait for all running jobs and exit. she's packing her bags properly and saying goodbye to everyone first 🫢
  • SIGUSR1 β€” Force fcron to reload her configuration.
  • SIGUSR2 β€” Make fcron print her current schedule on syslog. It also toggles on/off the printing of debug info on syslog. two-in-one, lowkey efficient πŸ”₯
  • SIGHUP β€” Tell fcron to check if there is any configuration update (this signal is used by fcrontab(1)).
  • SIGCONT β€” Notify fcron that the system was just resumed from suspend (to memory or disk). This will trigger fcron to read the /usr/local/var/run/fcron.suspend and update the task schedules accordingly. Note that fcron doesn't need this to detect suspend/resume on Linux. Linux girlies get it for free πŸ’…

🌈 CONFORMING TO 🌈

Should be POSIX compliant. "should" is doing a lot of work here but we respect it πŸŽ€


🧚 FILES 🧚

  • /usr/local/etc/fcron.conf β€” Configuration file for fcron, fcrontab and fcrondyn: contains paths (spool dir, pid file) and default programs to use (editor, shell, etc). See fcron.conf(5) for more details.
  • /usr/local/etc/fcron.allow β€” Users allowed to use fcrontab and fcrondyn (one name per line, special name "all" acts for everyone). the VIP list πŸ’–
  • /usr/local/etc/fcron.deny β€” Users who are not allowed to use fcrontab and fcrondyn (same format as allow file). the other list πŸ™ˆ
  • /usr/local/etc/pam.d/fcron (or /usr/local/etc/pam.conf) β€” PAM configuration file for fcron. Take a look at pam(8) for more details.
  • /usr/local/var/run/fcron.suspend β€” Location of fcron suspend file, for non-Linux systems. This should be used to let fcron know how long the system was suspended (to memory or disk), so as task schedules can be updated accordingly. The file must be owned by root:root, and not writable by others. When the system resumes, write the number of seconds (as a string) the system was suspended into this file, and then send a SIGCONT signal to make fcron process (and then delete) that file. This is not needed on Linux as fcron uses Linux-specific APIs to detect the resume and measure the suspend duration. so on Linux? skip her, she already knows. everywhere else? write the seconds, send the signal, she'll handle it ✨

πŸ‘‘ SEE ALSO πŸ‘‘

If you're learning how to use fcron from scratch, I suggest that you read the HTML version of the documentation (if you're not reading it right now! :)): the content is the same, but it is easier to navigate thanks to the hyperlinks. the hyperlinks really do carry it, ngl πŸ”₯


πŸ“ AUTHOR πŸ“

Thibault Godouet <fcron@free.fr>


and that's the whole page, bestie!! you ate this 🫢✨ version 06/06/2026, dated 06 June 2026 β€” mwah, go schedule something iconic πŸ’…

πŸ“¦ where this page comes from