freebsd-skq/etc/rc.d/nfslocking
Mike Makonnen c76ad7642f The precmd routine does not need to check whether the command should be
"forced". If some pre-condition is not met, it should fail as it normally
does and rc.subr(8) will make the appropriate decision. Incidentally, the
previous behaviour had a bug where the "force" flag was respected only
when checking rc.conf(5) knobs. The flag was ignored when verifying the
rpcbind(8) dependency.

MFC after: 2 weeks
2007-05-17 08:57:14 +00:00

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
. /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"