Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ (8) — Plan9 1st Edition

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

mail(1)

QER(8)

NAME

qer, runq − queues management for spooled files

SYNOPSIS

­qer ­root tag reply args
­runq [ ­-ad ] ­root cmd

DESCRIPTION

­Qer creates a control and a data file in a queue directory.  The control file contents consist of the tag, reply, and ­args separated by spaces.  The data file contains the standard input to qer. The files are created in the directory root/user, where ­user is the contents of /dev/user.  Mktemp(2) is used to create the actual names of the control and data file.

­Runq processes the files queued by qer. Without the ­-a option, ­runq processes all requests in the directory root/user, where ­user is the contents of /dev/user.  With the ­-a it processes all requests.  Each request is processed by executing the command ­cmd with the contents of the control file as its arguments, the contents of the data file as its standard input, and standard error appended to the error file E.XXXXXX. 

The action taken by ­runq depends on the return status of cmd. If ­cmd returns a null status, the processing is assumed successful and the control, data, and error files are removed.  If ­cmd returns an error status containing the word Retry, the files are left to be reprocessed at a later time.  For any other status, an error message is mailed to the requester and the files are removed.  ­Runq uses the ­reply field in the control file as a mail address to which to send an error notification.  The notification contains the contents of the control file to identify the failed request. 

To avoid reprocessing files too often, the following algorithm is used: a data file younger than one hour will not be processed if its error file exists and was last modified within the preceding 10 minutes.  A data file older than one hour will not be processed if its error file exists and was last modified within the preceding hour. 

The ­-d option causes debugging output on standard error describing the progress through the queues. 

­Runq is often called from cron(8) by an entry such as

0,10,20,30,40,50 ∗ ∗ ∗ ∗ kremvax
        runq -a /mail/queue /mail/lib/remotemail

The entry must be a single line; it is folded here only so it fits on the page. 

FILES

­root/user queue directory for ­user

­root/user/D.XXXXXX data file

­root/user/C.XXXXXX control file

­root/user/E.XXXXXX error file

SOURCE

­/sys/src/cmd/upas/q

SEE ALSO

mail(1)

Plan 9  —  April 04, 1995

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026