#!/bin/sh
# nfsmount calls this script when mounting a filesystem with locking
# enabled, but when statd does not seem to be running (based on
# /run/rpc.statd.pid).
# It should run statd with whatever flags are apropriate for this
# site.
PATH="/sbin:/usr/sbin:/bin:/usr/bin"

# Use flock to serialize the running of this script
exec 9> /run/rpc.statd.lock
flock -e 9

if [ -s /run/rpc.statd.pid ] &&
       [ 1`cat /run/rpc.statd.pid` -gt 1 ] &&
       kill -0 `cat /run/rpc.statd.pid` > /dev/null 2>&1
then
    # statd already running - must have been slow to respond.
    exit 0
fi
# First try systemd if it's installed.
if [ -d /run/systemd/system ]; then
    # Quit only if the call worked.
    if systemctl start rpc-statd.service; then
        # Ensure systemd knows not to stop rpc.statd or its dependencies
        # on 'systemctl isolate ..'
        systemctl add-wants --runtime remote-fs.target rpc-statd.service
        exit 0
    fi
fi

cd /
# Fall back to launching it ourselves.
exec rpc.statd --no-notify
