| #!/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 |