At 06:17 PM 10/17/99 -0500, David Dyer-Bennet wrote:
>Todd A. Jacobs <[EMAIL PROTECTED]> writes on 17 October 1999 at 15:43:35
-0700
> > On Sun, 17 Oct 1999, David Dyer-Bennet wrote:
> >
> > > > Check the permissions on /var/qmail/queue/lock/trigger. They
should look like
> > > > this:
> > > >
> > > > prw--w--w- 1 qmails qmail 0 Oct 16 17:39 trigger
> >
> > That was definitely the problem in my case. I'm not sure how it changed,
> > though. If I find out, I promise you'll be the second one to know. :)
> >
> > I couldn't find any info on the trigger file. Can you explain how qmail is
> > using this named pipe, and why it has to be world-writable?
>
>I haven't examined this bit of source just recently, but very roughly,
>qmail-inject uses this to alert the central q-management process that
>there's new business waiting. Since qmail-inject runs as any user
>sending mail, the trigger needs to be world-writable. I'm sure the
>process on the other end of that pipe is *very* careful what it does
>with whatever comes through it!
I don't think qmail-send does anything with what comes through the pipe.
The pipe is a trigger. When qmail-queue injects a message in the queue, it
writes a byte in the FIFO.
Qmail-send keeps listening to the FIFO (through a select() call so that it
doesn't waste cpu time). When the byte is written, the select() call "wakes
up" and qmail-send knows there is something is the queue.
If the FIFO has wrong permissions, qmail-queue can't write to it and
qmail-send never knows there is mail waiting to be processed. However,
qmail-send wakes itself up every 20 minutes (?) by sending an ALRM signal.
This is why people see the queue processed in batches every 20 minutes.
David.