diff --git a/etc/rc.d/lockd b/etc/rc.d/lockd index f8a77e8afa7..5853a482dff 100644 --- a/etc/rc.d/lockd +++ b/etc/rc.d/lockd @@ -5,7 +5,7 @@ # # PROVIDE: nfslocking -# REQUIRE: nfsserver nfsclient nfsd +# REQUIRE: nfsserver nfsclient nfsd rpcbind # BEFORE: DAEMON # KEYWORD: nojail @@ -17,10 +17,24 @@ arg=$1 # Either NFS client or server must be enabled or this must be a 'forcestart' # for either of the daemons to start. # -start_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable || +nfslocking_precmd() +{ + if ! checkyesno nfs_server_enable && ! checkyesno nfs_client_enable && \ + [ -z "$rc_force" ] + then + return 1 + fi + if ! checkyesno rpcbind_enable && \ + ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1 + then + force_depend rpcbind || return 1 + fi +} + +start_precmd="nfslocking_precmd" +stop_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable || [ -n "$rc_force" ]' -stop_precmd=$start_precmd -status_precmd=$start_precmd +status_precmd=$stop_precmd # rpc.statd # diff --git a/etc/rc.d/nfslocking b/etc/rc.d/nfslocking index f8a77e8afa7..5853a482dff 100755 --- a/etc/rc.d/nfslocking +++ b/etc/rc.d/nfslocking @@ -5,7 +5,7 @@ # # PROVIDE: nfslocking -# REQUIRE: nfsserver nfsclient nfsd +# REQUIRE: nfsserver nfsclient nfsd rpcbind # BEFORE: DAEMON # KEYWORD: nojail @@ -17,10 +17,24 @@ arg=$1 # Either NFS client or server must be enabled or this must be a 'forcestart' # for either of the daemons to start. # -start_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable || +nfslocking_precmd() +{ + if ! checkyesno nfs_server_enable && ! checkyesno nfs_client_enable && \ + [ -z "$rc_force" ] + then + return 1 + fi + if ! checkyesno rpcbind_enable && \ + ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1 + then + force_depend rpcbind || return 1 + fi +} + +start_precmd="nfslocking_precmd" +stop_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable || [ -n "$rc_force" ]' -stop_precmd=$start_precmd -status_precmd=$start_precmd +status_precmd=$stop_precmd # rpc.statd # diff --git a/etc/rc.d/statd b/etc/rc.d/statd index f8a77e8afa7..5853a482dff 100644 --- a/etc/rc.d/statd +++ b/etc/rc.d/statd @@ -5,7 +5,7 @@ # # PROVIDE: nfslocking -# REQUIRE: nfsserver nfsclient nfsd +# REQUIRE: nfsserver nfsclient nfsd rpcbind # BEFORE: DAEMON # KEYWORD: nojail @@ -17,10 +17,24 @@ arg=$1 # Either NFS client or server must be enabled or this must be a 'forcestart' # for either of the daemons to start. # -start_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable || +nfslocking_precmd() +{ + if ! checkyesno nfs_server_enable && ! checkyesno nfs_client_enable && \ + [ -z "$rc_force" ] + then + return 1 + fi + if ! checkyesno rpcbind_enable && \ + ! /etc/rc.d/rpcbind forcestatus 1>/dev/null 2>&1 + then + force_depend rpcbind || return 1 + fi +} + +start_precmd="nfslocking_precmd" +stop_precmd='checkyesno nfs_server_enable || checkyesno nfs_client_enable || [ -n "$rc_force" ]' -stop_precmd=$start_precmd -status_precmd=$start_precmd +status_precmd=$stop_precmd # rpc.statd #