faxrunq - send fax jobs queued by faxspool(1)
Run the fax queue set up by faxspool(1) , try to send all faxes, record result, remove job and send notify mails.
faxrunq looks for all the jobs queued by faxspool(1) to /var/spool/fax/outgoing/*. For each job in the queue, faxrunq tries to send it, using sendfax(8) .
If the send succeeds, the job is removed from the queue, and a “success" mail is sent to the originator of the spooled job.
If the send fails, it’s logged, and faxrunq proceeds to the next job. If the job fails five times “fatally", that is, not with a locked or engaged line, but with “NO CARRIER” (no fax machine, or line noise), the job is suspended, and the requestor gets a mail, telling him so.
faxrunq can be run from the command line (but make sure the user doing this has write access to the modem device and to the fax queue, that is, usually this should be done by “fax” or “root"). In a production environment, it’s more useful to start faxrunq from cron(8) in regular intervals, like “run it every 5 minutes". See the cron(8) and/or crontab(1) man pages for this (which man page exists depends on your system).
if this file exists, faxrunq (and faxrunqd) will do nothing. You can use this to stop queue processing while testing something, or if you know that the modem(s) are unavailable and do not want to run into oany error messages, etc.
Every time faxrunq (or faxrunqd) run the fax queue, a time stamp is written into that file. It is used by faxspool to display a warning if the queue hasn’t been run recently (so faxes may get stuck).
Some aspects of the behaviour of faxrunq can be controlled by a configuration file, /usr/local/etc/mgetty+sendfax/faxrunq.config. In this file, you can use the following options:
A boolean parameter that controls whether a mail will be sent after successful completition of the fax job.
A boolean parameter that controls whether a mail will be sent after the fax job has failed more than the maximum number of times.
Here, you can specify a program that will be run when the fax has been successfully sent. It will be passed two command line parameters. The first is the full path to the fax JOB file (see faxq(5) ), the second is the last exit code from sendfax (for success-call-program, this is always “0").
Similar to the “success-call-program", this program will be run when the fax has been failed too often and faxrunq gives up. This script could, for example, print out the fax on a printer so that it can be sent manually on a paper fax machine.
This specifies the number of times that a fax may fail “fatally", that is, causing telephone costs (explained above). The default value is 5.
This is the absolute maximum number of times that faxrunq will try to send any given fax. The default value is 10. (Right now, it’s not yet implemented).
Determines whether faxrunq should delete jobs after sending, or leave them in the fax queue (while moving the “JOB” file to “JOB.done") so that they can be seen at by “faxq -o". The default value is “do not delete sent faxes".
Specifies where faxrunq should protocol success and failure of each try to send a fax job. The default location is /var/spool/fax/outgoing/acct.log.
There are some other options that are allowed, but ignored. These are: max-modems, and faxrunqd-log.
They are used by faxrunqd(8) (which reads the same config file, but has more options).
faxrunq doesn’t handle proper time scheduling yet
Don’t use faxrunq if you have malevolent users with access to the fax spool. It doesn’t handle all cases of file movement tricks correctly. Use faxrunqd(8) instead, which does it correctly (this point is mostly moot if the fax queue is set up correctly - that is, owned by ‘fax’, mode 755, and faxrunq(1) is also run as user ‘fax’).
faxspool(1) , sendfax(8) , faxq(1) , faxqueue(5) , faxrunqd(8)
faxrunq is Copyright (C) 1993-2002 by Gert Doering, <firstname.lastname@example.org>.
Table of Contents