rc.d/svscan: Use -f to daemon(8) again.

- This reverts the change from r247267 which removed it.
- The upstream svscanboot script closes stdout, stdin and stderr.  Our
  script should do the same.  Doing this does not lose any output since the
  output is all piped to the proper logger.  This fixes hangs when combined
  with Salt [1].

Reported by:	C. R. Oldham <cro@ncbt.org> [1]
This commit is contained in:
Bryan Drewery 2016-05-03 18:27:04 +00:00
parent 2b569b9b46
commit 1bffea19a2
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=414546
2 changed files with 4 additions and 4 deletions

View file

@ -3,7 +3,7 @@
PORTNAME= daemontools
PORTVERSION= 0.76
PORTREVISION= 17
PORTREVISION= 18
CATEGORIES= sysutils
MASTER_SITES= http://cr.yp.to/daemontools/ \
http://mirror.shatow.net/freebsd/${PORTNAME}/:DEFAULT,1 \

View file

@ -86,12 +86,12 @@ svscan_start () {
EP="/usr/bin/env \
PATH=%%PREFIX%%/sbin:%%PREFIX%%/bin:/usr/sbin:/usr/bin:/sbin:/bin"
if [ -z "${svscan_logdir}" ]; then
${EP} /usr/sbin/daemon /bin/sh -c "$command $svscan_servicedir 2>&1 | %%PREFIX%%/bin/readproctitle service errors: ................................................................................................................................................................................................................................................................................................................................................................................................................ &" > /dev/null
${EP} /usr/sbin/daemon -f /bin/sh -c "$command $svscan_servicedir 2>&1 | %%PREFIX%%/bin/readproctitle service errors: ................................................................................................................................................................................................................................................................................................................................................................................................................ &"
else
logmax=${svscan_logmax+s$svscan_logmax}
lognum=${svscan_lognum+n$svscan_lognum}
${EP} /usr/sbin/daemon /bin/sh -c "$command $svscan_servicedir 2>&1 \
| %%PREFIX%%/bin/multilog t $logmax $lognum '${svscan_logdir}' &" > /dev/null
${EP} /usr/sbin/daemon -f /bin/sh -c "$command $svscan_servicedir 2>&1 \
| %%PREFIX%%/bin/multilog t $logmax $lognum '${svscan_logdir}' &"
fi
}