Repository navigation
slowq start.8
slowq-start - turn on mail delivery
slowq-start [ defaultdelivery [ logger arg ... ] ]
slowq-start forks and executes qmail-lspawn(8), qmail-rspawn(8), and qmail-clean(8) as childs, for a queue defined by the environment variable QUEUEDIR. The queue can be created by queue-fix(8). Messages are injected in the queue by any qmail-queue client. See qmail-queue-clients(7). slowq-start then execs slowq-send(8). slowq-start sets up communication channels using pipes between slowq-send and the other four daemons. These five daemons cooperate to deliver messages from the queue and are executed with the proper uids and gids to achieve a security partition. The uids and gids are obtained from the passwd(5) database using standard glibc getpwent(3), getgrent(3) calls which are inherently unreliable. You can switch to internal qgetpwent(3), qgetgrent(3) functions by setting the environment variable USE_QPWGR. The uids and gids with which these give daemons are invoked are as follows. If USE_SETGROUPS environment variable is set, slowq-start sets up additional groups.
| daemon UNIX user UNIX group | |
|---|---|
| slowq-send qmails qmail | |
| qmail-clean qmailq qmail + supplementary groups for qmailq | |
| qmail-lspawn root qmail | |
| qmail-rspawn qmailr qmail + supplementary groups for qmailr | |
| logger qmaill nofiles + supplementary groups for qmaill |
slowq-start borrows most of it's code from qmail-start.
slowq-start arranges for slowq-send's activity record to be sent to slowq-start's output. See qmail-log(5) for the format of the activity record. slowq-start doesn't print anything other than errors on descriptor 2 before it execs slowq-send.
If defaultdelivery is supplied, slowq-start passes it to qmail-lspawn.
The default indimail installation, creates a supervised service in /service/slowq. The output goes to /var/log/svc/slowq/current. The default mailbox type is picked up from the defaultdelivery control file. The table below outlines the choices for defaultdelivery control file
| Mailbox Name Location defaultdelivery Comments | |
| Format | |
| _ | |
| mbox Mailbox $HOME ./Mailbox most common, works with | |
| maildir Maildir $HOME ./Maildir/ more reliable, less | |
| mbox username /var/spool/mail See INSTALL.vsm traditional mailbox | |
| _ |
If logger is supplied, slowq-start invokes logger with the given arguments, and feeds slowq-send's activity record through logger.
Environment variables given to slowq-start or qscheduler will eventually be passed on to qmail-local, so make sure to clean up the environment if you run slowq-start manually:
# env - PATH="PREFIX/sbin:$PATH"
slowq-start ./Mailbox splogger qmail &
(all on one line)
Resource limits, controlling ttys, et al. are also passed from slowq-start to qmail-local.
Note that slowq-send normally juggles several simultaneous deliveries. To reduce slowq-send's impact on other programs, you can run slowq-start with a low priority.
If you set the environment variable USE_SETGROUPS, qmail-start can set supplementary groups (if defined in /etc/group) for slowq-send (for qmails user), qmail-rspawn (for qmailr user), qmail-clean (qmailq user) and any logger specified on command line (qmaill user). See group(5) to learn how to set supplementary groups.
logger(1) splogger(1) nice(1) qmail-log(5), qmail-local(8), qmail-clean(8), qmail-lspawn(8), qmail-rspawn(8), qmail-start(8), qmail-send(8), slowq-send(8), todo-proc(8), qmail-multi(8), initsvc(1), svscan(8), supervise(8), getpwent(3) getgrent(3) qgetpwent(3), qgetgrent(3), passwd(5) group(5) IndiMail(7)