You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
337 lines
7.8 KiB
337 lines
7.8 KiB
diff -uNr a/heartbeat/nfsserver b/heartbeat/nfsserver |
|
--- a/heartbeat/nfsserver 2016-07-21 12:40:55.417326145 +0200 |
|
+++ b/heartbeat/nfsserver 2016-07-21 12:04:49.000000000 +0200 |
|
@@ -352,45 +352,22 @@ |
|
|
|
nfsserver_monitor () |
|
{ |
|
- # Skip trying to start processes once before failing |
|
- # when run from nfsserver_start () |
|
- if [ "$1" == "fromstart" ]; then |
|
- ocf_log info "fromstart" |
|
- fromstart=1 |
|
- else |
|
- tries=1 |
|
- fi |
|
- |
|
# systemd |
|
if [ "$EXEC_MODE" -eq "2" ]; then |
|
ocf_log info "Status: rpcbind" |
|
- rpcinfo &> /dev/null |
|
+ rpcinfo > /dev/null 2>&1 |
|
rc=$? |
|
if [ "$rc" -ne "0" ]; then |
|
- if [ ! "$fromstart" ] && [ "$tries" -gt "0" ]; then |
|
- nfsserver_start frommonitor |
|
- rc=$? |
|
- let tries=$tries-1 |
|
- fi |
|
- if [ "$rc" -ne "0" ]; then |
|
- ocf_exit_reason "rpcbind is not running" |
|
- return $OCF_NOT_RUNNING |
|
- fi |
|
+ ocf_exit_reason "rpcbind is not running" |
|
+ return $OCF_NOT_RUNNING |
|
fi |
|
|
|
ocf_log info "Status: nfs-mountd" |
|
- rpcinfo -t localhost 100005 &> /dev/null |
|
+ rpcinfo -t localhost 100005 > /dev/null 2>&1 |
|
rc=$? |
|
if [ "$rc" -ne "0" ]; then |
|
- if [ ! "$fromstart" ] && [ "$tries" -gt "0" ]; then |
|
- nfsserver_start frommonitor |
|
- rc=$? |
|
- let tries=$tries-1 |
|
- fi |
|
- if [ "$rc" -ne "0" ]; then |
|
- ocf_exit_reason "nfs-mountd is not running" |
|
- return $OCF_NOT_RUNNING |
|
- fi |
|
+ ocf_exit_reason "nfs-mountd is not running" |
|
+ return $OCF_NOT_RUNNING |
|
fi |
|
|
|
ocf_log info "Status: nfs-idmapd" |
|
@@ -400,31 +377,16 @@ |
|
ocf_log debug "$(cat $fn)" |
|
rm -f $fn |
|
if [ "$rc" -ne "0" ]; then |
|
- if [ ! "$fromstart" ] && [ "$tries" -gt "0" ]; then |
|
- nfsserver_start frommonitor |
|
- rc=$? |
|
- ocf_log info "Tried to start services: rc: $rc" |
|
- let tries=$tries-1 |
|
- fi |
|
- if [ "$rc" -ne "0" ]; then |
|
- ocf_exit_reason "nfs-idmapd is not running" |
|
- return $OCF_NOT_RUNNING |
|
- fi |
|
+ ocf_exit_reason "nfs-idmapd is not running" |
|
+ return $OCF_NOT_RUNNING |
|
fi |
|
|
|
ocf_log info "Status: rpc-statd" |
|
- rpcinfo -t localhost 100024 &> /dev/null |
|
+ rpcinfo -t localhost 100024 > /dev/null 2>&1 |
|
rc=$? |
|
if [ "$rc" -ne "0" ]; then |
|
- if [ ! "$fromstart" ] && [ "$tries" -gt "0" ]; then |
|
- nfsserver_start frommonitor |
|
- rc=$? |
|
- let tries=$tries-1 |
|
- fi |
|
- if [ "$rc" -ne "0" ]; then |
|
- ocf_exit_reason "rpc-statd is not running" |
|
- return $OCF_NOT_RUNNING |
|
- fi |
|
+ ocf_exit_reason "rpc-statd is not running" |
|
+ return $OCF_NOT_RUNNING |
|
fi |
|
fi |
|
|
|
@@ -436,15 +398,8 @@ |
|
|
|
tfn="/proc/fs/nfsd/threads" |
|
if [ ! -f "$tfn" ] || [ "$(cat $tfn)" -le "0" ]; then |
|
- if [ ! "$fromstart" ] && [ "$tries" -gt "0" ]; then |
|
- nfsserver_start frommonitor |
|
- rc=$? |
|
- let tries=$tries-1 |
|
- fi |
|
- if [ "$rc" -ne "0" ]; then |
|
- ocf_exit_reason "NFS server not running: /proc/fs/nfsd/threads" |
|
- return $OCF_NOT_RUNNING |
|
- fi |
|
+ ocf_exit_reason "NFS server not running: /proc/fs/nfsd/threads" |
|
+ return $OCF_NOT_RUNNING |
|
fi |
|
|
|
#Adapt LSB status code to OCF return code |
|
@@ -454,15 +409,8 @@ |
|
v3locking_exec "status" |
|
rc=$? |
|
if [ $rc -ne 0 ]; then |
|
- if [ ! "$fromstart" ] && [ $tries -gt "0" ]; then |
|
- nfsserver_start frommonitor |
|
- rc=$? |
|
- let tries=$tries-1 |
|
- fi |
|
- if [ "$rc" -ne "0" ]; then |
|
- ocf_exit_reason "NFS server is up, but the locking daemons are down" |
|
- rc=$OCF_ERR_GENERIC |
|
- fi |
|
+ ocf_exit_reason "NFS server is up, but the locking daemons are down" |
|
+ rc=$OCF_ERR_GENERIC |
|
fi |
|
return $rc |
|
elif [ $rc -eq 3 ]; then |
|
@@ -561,7 +509,7 @@ |
|
[ -f "$fp/xtab" ] || touch "$fp/xtab" |
|
[ -f "$fp/rmtab" ] || touch "$fp/rmtab" |
|
|
|
- dd if=/dev/urandom of=$fp/$STATD_DIR/state bs=1 count=4 &> /dev/null |
|
+ dd if=/dev/urandom of=$fp/$STATD_DIR/state bs=1 count=4 > /dev/null 2>&1 |
|
[ -n "`id -u rpcuser`" -a "`id -g rpcuser`" ] && chown rpcuser.rpcuser "$fp/$STATD_DIR/state" |
|
[ $SELINUX_ENABLED -eq 0 ] && chcon -R "$SELINUX_LABEL" "$fp" |
|
} |
|
@@ -656,15 +604,15 @@ |
|
|
|
terminate() |
|
{ |
|
- declare pids |
|
- declare i=0 |
|
+ local pids |
|
+ local i=0 |
|
|
|
while : ; do |
|
pids=$(binary_status $1) |
|
[ -z "$pids" ] && return 0 |
|
kill $pids |
|
sleep 1 |
|
- ((i++)) |
|
+ i=$((i + 1)) |
|
[ $i -gt 3 ] && return 1 |
|
done |
|
} |
|
@@ -672,22 +620,22 @@ |
|
|
|
killkill() |
|
{ |
|
- declare pids |
|
- declare i=0 |
|
+ local pids |
|
+ local i=0 |
|
|
|
while : ; do |
|
pids=$(binary_status $1) |
|
[ -z "$pids" ] && return 0 |
|
kill -9 $pids |
|
sleep 1 |
|
- ((i++)) |
|
+ i=$((i + 1)) |
|
[ $i -gt 3 ] && return 1 |
|
done |
|
} |
|
|
|
stop_process() |
|
{ |
|
- declare process=$1 |
|
+ local process=$1 |
|
|
|
ocf_log info "Stopping $process" |
|
if terminate $process; then |
|
@@ -758,14 +706,9 @@ |
|
|
|
nfsserver_start () |
|
{ |
|
- # Skip monitor check when run from nfsserver_monitor () |
|
- if [ "$1" == "frommonitor" ]; then |
|
- frommonitor=1 |
|
- fi |
|
- |
|
local rc; |
|
|
|
- if [ ! "$frommonitor" ] && nfsserver_monitor fromstart; then |
|
+ if nfsserver_monitor; then |
|
ocf_log debug "NFS server is already started" |
|
return $OCF_SUCCESS |
|
fi |
|
@@ -796,21 +739,17 @@ |
|
# systemd |
|
if [ "$EXEC_MODE" -eq "2" ]; then |
|
nfs_exec start rpcbind |
|
- local i=10 |
|
- while [ "$i" -gt 0 ]; do |
|
+ local i=1 |
|
+ while : ; do |
|
ocf_log info "Start: rpcbind i: $i" |
|
- rpcinfo &> /dev/null |
|
+ rpcinfo > /dev/null 2>&1 |
|
rc=$? |
|
if [ "$rc" -eq "0" ]; then |
|
break; |
|
fi |
|
sleep 1 |
|
- let i=$i-1 |
|
+ i=$((i + 1)) |
|
done |
|
- if [ "$i" -eq 0 ]; then |
|
- ocf_exit_reason "Failed to start rpcbind" |
|
- return $OCF_ERR_GENERIC |
|
- fi |
|
fi |
|
|
|
# check to see if we need to start rpc.statd |
|
@@ -830,25 +769,21 @@ |
|
# systemd |
|
if [ "$EXEC_MODE" -eq "2" ]; then |
|
nfs_exec start nfs-mountd |
|
- local i=10 |
|
- while [ "$i" -gt 0 ]; do |
|
+ local i=1 |
|
+ while : ; do |
|
ocf_log info "Start: nfs-mountd i: $i" |
|
- rpcinfo -t localhost 100005 &> /dev/null |
|
+ rpcinfo -t localhost 100005 > /dev/null 2>&1 |
|
rc=$? |
|
if [ "$rc" -eq "0" ]; then |
|
break; |
|
fi |
|
sleep 1 |
|
- let i=$i-1 |
|
+ i=$((i + 1)) |
|
done |
|
- if [ "$i" -eq 0 ]; then |
|
- ocf_exit_reason "Failed to start nfs-mountd" |
|
- return $OCF_ERR_GENERIC |
|
- fi |
|
|
|
nfs_exec start nfs-idmapd |
|
- local i=10 |
|
- while [ "$i" -gt 0 ]; do |
|
+ local i=1 |
|
+ while : ; do |
|
ocf_log info "Start: nfs-idmapd i: $i" |
|
fn=`mktemp` |
|
nfs_exec status nfs-idmapd > $fn 2>&1 |
|
@@ -859,29 +794,21 @@ |
|
break; |
|
fi |
|
sleep 1 |
|
- let i=$i-1 |
|
+ i=$((i + 1)) |
|
done |
|
- if [ "$i" -eq 0 ]; then |
|
- ocf_exit_reason "Failed to start nfs-idmapd" |
|
- return $OCF_ERR_GENERIC |
|
- fi |
|
|
|
nfs_exec start rpc-statd |
|
- local i=10 |
|
- while [ "$i" -gt 0 ]; do |
|
+ local i=1 |
|
+ while : ; do |
|
ocf_log info "Start: rpc-statd i: $i" |
|
- rpcinfo -t localhost 100024 &> /dev/null |
|
+ rpcinfo -t localhost 100024 > /dev/null 2>&1 |
|
rc=$? |
|
if [ "$rc" -eq "0" ]; then |
|
break; |
|
fi |
|
sleep 1 |
|
- let i=$i-1 |
|
+ i=$((i + 1)) |
|
done |
|
- if [ "$i" -eq 0 ]; then |
|
- ocf_exit_reason "Failed to start rpc-statd" |
|
- return $OCF_ERR_GENERIC |
|
- fi |
|
fi |
|
|
|
fn=`mktemp` |
|
@@ -936,16 +863,16 @@ |
|
return $OCF_ERR_GENERIC |
|
fi |
|
|
|
- nfs_exec stop rpc-statd &> /dev/null |
|
+ nfs_exec stop rpc-statd > /dev/null 2>&1 |
|
ocf_log info "Stop: rpc-statd" |
|
- rpcinfo -t localhost 100024 &> /dev/null |
|
+ rpcinfo -t localhost 100024 > /dev/null 2>&1 |
|
rc=$? |
|
if [ "$rc" -eq "0" ]; then |
|
ocf_exit_reason "Failed to stop rpc-statd" |
|
return $OCF_ERR_GENERIC |
|
fi |
|
|
|
- nfs_exec stop nfs-idmapd &> /dev/null |
|
+ nfs_exec stop nfs-idmapd > /dev/null 2>&1 |
|
ocf_log info "Stop: nfs-idmapd" |
|
fn=`mktemp` |
|
nfs_exec status nfs-idmapd > $fn 2>&1 |
|
@@ -957,9 +884,9 @@ |
|
return $OCF_ERR_GENERIC |
|
fi |
|
|
|
- nfs_exec stop nfs-mountd &> /dev/null |
|
+ nfs_exec stop nfs-mountd > /dev/null 2>&1 |
|
ocf_log info "Stop: nfs-mountd" |
|
- rpcinfo -t localhost 100005 &> /dev/null |
|
+ rpcinfo -t localhost 100005 > /dev/null 2>&1 |
|
rc=$? |
|
if [ "$rc" -eq "0" ]; then |
|
ocf_exit_reason "Failed to stop nfs-mountd" |
|
@@ -975,8 +902,11 @@ |
|
|
|
# systemd |
|
if [ "$EXEC_MODE" -eq "2" ]; then |
|
- nfs_exec stop rpcbind &> /dev/null |
|
+ nfs_exec stop rpcbind > /dev/null 2>&1 |
|
ocf_log info "Stop: rpcbind" |
|
+ |
|
+ nfs_exec stop rpc-gssd > /dev/null 2>&1 |
|
+ ocf_log info "Stop: rpc-gssd" |
|
fi |
|
|
|
unbind_tree
|
|
|