summaryrefslogtreecommitdiff
path: root/security/cfs/files/cfsd.sh
blob: 92fcff5378ead3bf3335959ece39cef32a9eef39 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
#!/bin/sh
#
# $NetBSD: cfsd.sh,v 1.1.1.1 2001/06/05 22:19:11 jlam Exp $
#
# PROVIDE: cfsd
# REQUIRE: mountd
#
# To start cfsd at startup, copy this script to /etc/rc.d and set
# cfsd=YES in /etc/rc.conf.

name="cfsd"
rcvar=$name
command="@PREFIX@/sbin/${name}"
command_args="> /dev/null 2>&1"
required_vars="mountd"

# set defaults
if [ -r /etc/rc.conf ]
then
	. /etc/rc.conf
else
	eval ${rcvar}=YES
fi

# $flags from environment overrides ${rcvar}_flags
if [ -n "${flags}" ]
then
	eval ${rcvar}_flags="${flags}"
fi

checkyesno()
{
	eval _value=\$${1}
	case $_value in
	[Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1)	return 0 ;;
	[Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0)	return 1 ;;
	*)
		echo "\$${1} is not set properly."
		return 1
		;;
	esac
}

cmd=${1:-start}
case ${cmd} in
force*)
	cmd=${cmd#force}
	forcecmd=YES
	eval ${rcvar}=YES
	;;
esac

required_vars="${rcvar} ${required_vars}"
pid_cmd="ps ax | awk '{print \$1,\$5}' | grep ${name} | awk '{print \$1}'"

for _var in ${required_vars}
do
	if ! checkyesno ${_var}
	then
		if [ -z "${forcecmd}" ]
		then
			exit 1
		fi
	fi
done

if [ -x ${command} ]
then
	case ${cmd} in
	start)
		echo "Starting ${name}."
		eval ${command} ${cfs_flags} ${command_args}
		;;
	stop)
		pid=`eval ${pid_cmd}`
		if [ -z "${pid}" ]
		then
			echo "${name} not running?"
			exit 1
		fi
		echo "Stopping ${name}."
		kill ${pid}
		;;
	restart)
		( $0 forcestop )
		sleep 5
		$0 forcestart
		;;
	status)
		pid=`eval ${pid_cmd}`
		if [ -n "${pid}" ]; then
			echo "${name} is running as pid ${pid}."
		else
			echo "${name} is not running."
			exit 1
		fi
		;;
	*)
		echo 1>&2 "Usage: $0 [restart|start|stop|status]"
		exit 1
		;;
	esac
fi