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.

Reply via email to