On Tue, 27 Jan 2009, Timo Sirainen wrote:
I may be able to create a shell script that set the env variable and then launched deliver, but that's another fork that I'd rather not have, and since I already know the home dir when I set up the .qmail-user file, I'd rather just set it...
A shell script doesn't have to fork deliver, just exec it.
Even if the shell forks before the exec, that time is nothing compared to the many synchronous writes that qmail does.
Even on a 233 MHz Pentium II computer with a reasonable operating system (any halfway recent BSD, or Linux, or Solaris), an extra fork has never hurt me (not even when such a machines were used as mail, web, samba, ftp server and 100 Mbit/s firewall at the same time).
Typical shells will try to use lighter-weight vfork() anyways -- only that most operating systems should implement copy-on-write strategies underneath fork() and can then map vfork() on top of fork() because it really makes no noticable difference any more.
-- Matthias Andree