- cd / # daemons should have root dir as cwd
- printf "Starting $DESC:"
- printf " statd"
- start-stop-daemon --start --quiet \
- --exec $PREFIX/sbin/rpc.statd
- if [ "$NEED_LOCKD" = yes ]
+ log_daemon_msg "Starting $DESC"
+
+ if [ "$NEED_STATD" = yes ]; then
+ log_progress_msg "statd"
+
+ # See if portmap or rpcbind are running
+ (cat </dev/null >/dev/tcp/localhost/111) 2>/dev/null
+ RET=$?
+ if [ $RET != 0 ]; then
+ echo
+ log_warning_msg "Not starting: portmap daemon is not running"
+ exit 0
+ fi
+
+ start-stop-daemon --start --oknodo --quiet \
+ --pidfile /var/run/rpc.statd.pid \
+ --exec $PREFIX/sbin/rpc.statd -- $STATDOPTS
+ RET=$?
+ if [ $RET != 0 ]; then
+ log_end_msg $RET
+ exit $RET
+ else
+ mkdir -p /lib/init/rw/sendsigs.omit.d
+ rm -f /lib/init/rw/sendsigs.omit.d/statd
+ ln -s /var/run/rpc.statd.pid /lib/init/rw/sendsigs.omit.d/statd
+ fi
+ fi
+
+ # Don't start idmapd and gssd if we don't have them (say, if /usr is not
+ # up yet).
+ [ -x /usr/sbin/rpc.idmapd ] || NEED_IDMAPD=no
+ [ -x /usr/sbin/rpc.gssd ] || NEED_GSSD=no
+
+ if [ "$NEED_IDMAPD" = yes ] || [ "$NEED_GSSD" = yes ]