mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-21 11:13:30 +00:00
6ee326fe2f
in most cases, except one. The 'restart' case was not working as expected. Specifically, it would stop both lockd and statd, but it would restart only statd (which appears first in the script). This is because rc.subr(8) contains code to guard against infinite recursion in the 'restart' casae. To fix this use the traditional approach of controlling only one server from one script by breaking out rc.d/nfslocking into its contituent parts: rc.d/lockd and rc.d/statd. Keep rc.d/nfslocking around but don't include it in the boot rcorder(8)ing. PR: conf/107316 Approved by: re (bmah) MFC after: 2 weeks
64 lines
1.1 KiB
Bash
Executable File
64 lines
1.1 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# $NetBSD: nfslocking,v 1.6 2002/03/24 15:52:41 lukem Exp $
|
|
# $FreeBSD$
|
|
#
|
|
|
|
# PROVIDE: nfslocking
|
|
# REQUIRE: nfsserver nfsclient nfsd rpcbind
|
|
# BEFORE: DAEMON
|
|
# KEYWORD: nojail nostart
|
|
|
|
. /etc/rc.subr
|
|
|
|
# Save the (one) commandline argument in case it gets clobbered.
|
|
arg=$1
|
|
|
|
# Either NFS client or server must be enabled and rpcbind(8) must be started.
|
|
#
|
|
nfslocking_precmd()
|
|
{
|
|
local ret
|
|
ret=0
|
|
|
|
if ! checkyesno nfs_server_enable && ! checkyesno nfs_client_enable
|
|
then
|
|
ret=1
|
|
fi
|
|
if ! checkyesno rpcbind_enable && \
|
|
! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1
|
|
then
|
|
force_depend rpcbind || ret=1
|
|
fi
|
|
|
|
if [ $name = "statd" ]
|
|
then
|
|
rc_flags=${rpc_statd_flags}
|
|
elif [ $name = "lockd" ]
|
|
then
|
|
rc_flags=${rpc_lockd_flags}
|
|
fi
|
|
|
|
return ${ret}
|
|
}
|
|
|
|
start_precmd="nfslocking_precmd"
|
|
stop_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable'
|
|
status_precmd=$stop_precmd
|
|
|
|
# rpc.statd
|
|
#
|
|
name="statd"
|
|
rcvar=rpc_statd_enable
|
|
command="/usr/sbin/rpc.${name}"
|
|
load_rc_config $name
|
|
run_rc_command "$arg"
|
|
|
|
# rpc.lockd
|
|
#
|
|
name="lockd"
|
|
rcvar=rpc_lockd_enable
|
|
command="/usr/sbin/rpc.${name}"
|
|
load_rc_config $name
|
|
run_rc_command "$arg"
|