masqmail-0.2
annotate mkinstalldirs @ 72:ad034b57f3b2
fixed Debian bug 536060 (log files are closed after SIGHUP receival)
Explanation:
When run in daemon mode, first the log files are opened. They get
assigned to the file descriptors 3 and 4 usually. Then std{in,out,err}
are closed. When SIGHUP comes in, all open files are closes and
masqmail reexecutes itself. The new masqmail instance opens the log
files at fd 0 and 1 now, but std{in,out,err} are closed afterwards,
thus the log files are closed.
The fix is to close the log files before std{in,out,err} are closed,
in case the log files have higher fds. After std{in,out,err} were
closed, the log files get opened again, now.
See also: http://bugs.debian.org/536060
author | meillo@marmaro.de |
---|---|
date | Wed, 16 Jun 2010 10:32:20 +0200 |
parents | |
children |
rev | line source |
---|---|
meillo@0 | 1 #! /bin/sh |
meillo@0 | 2 # mkinstalldirs --- make directory hierarchy |
meillo@0 | 3 # Author: Noah Friedman <friedman@prep.ai.mit.edu> |
meillo@0 | 4 # Created: 1993-05-16 |
meillo@0 | 5 # Public domain |
meillo@0 | 6 |
meillo@0 | 7 # $Id: mkinstalldirs,v 1.1.1.1 2001/03/19 15:45:28 okurth Exp $ |
meillo@0 | 8 |
meillo@0 | 9 errstatus=0 |
meillo@0 | 10 |
meillo@0 | 11 for file |
meillo@0 | 12 do |
meillo@0 | 13 set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` |
meillo@0 | 14 shift |
meillo@0 | 15 |
meillo@0 | 16 pathcomp= |
meillo@0 | 17 for d |
meillo@0 | 18 do |
meillo@0 | 19 pathcomp="$pathcomp$d" |
meillo@0 | 20 case "$pathcomp" in |
meillo@0 | 21 -* ) pathcomp=./$pathcomp ;; |
meillo@0 | 22 esac |
meillo@0 | 23 |
meillo@0 | 24 if test ! -d "$pathcomp"; then |
meillo@0 | 25 echo "mkdir $pathcomp" |
meillo@0 | 26 |
meillo@0 | 27 mkdir "$pathcomp" || lasterr=$? |
meillo@0 | 28 |
meillo@0 | 29 if test ! -d "$pathcomp"; then |
meillo@0 | 30 errstatus=$lasterr |
meillo@0 | 31 fi |
meillo@0 | 32 fi |
meillo@0 | 33 |
meillo@0 | 34 pathcomp="$pathcomp/" |
meillo@0 | 35 done |
meillo@0 | 36 done |
meillo@0 | 37 |
meillo@0 | 38 exit $errstatus |
meillo@0 | 39 |
meillo@0 | 40 # mkinstalldirs ends here |