summaryrefslogtreecommitdiff
path: root/devel/memcached/files/memcached.sh
blob: 0bd82de25fc4f6b215ca20e902d2e5f3869f984f (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
#!@RCD_SCRIPTS_SHELL@
#
# $NetBSD: memcached.sh,v 1.3 2014/07/15 17:30:26 fhajny Exp $
#

# PROVIDE: memcached
# REQUIRE: DAEMON

$_rc_subr_loaded . /etc/rc.subr

name="memcached"
rcvar=$name
command="@PREFIX@/bin/${name}"
command_args="-d"
start_cmd="memcached_start"
stop_cmd="memcached_stop"
status_cmd="memcached_status"
pidfile_base="@MEMCACHED_HOME@/memcached-"

memcached_pid()
{
	pidfile="${pidfile_base}$1.pid"
	rc_pid=`check_pidfile "$pidfile" $command`
}

memcached_start()
{
	rv=0
	for job in "" $memcached_jobs; do
		[ -z $job ] && continue
		memcached_pid $job
		if [ -n "${rc_pid}" ]; then
			echo "${name}/$job already running (pid=${rc_pid})."
			rv=1
			continue
		fi
		job_args=$(eval echo \$${name}_${job}_args)

		echo "Starting ${name}/$job."
		$command \
			-u @MEMCACHED_USER@ \
			$command_args \
			${job_args} \
			-P "${pidfile_base}${job}.pid"
	done
	return $rv
}

memcached_stop()
{
	rv=0
	for job in "" $memcached_jobs; do
		[ -z $job ] && continue
		memcached_pid $job
		if [ -n "${rc_pid}" ]; then
			echo "Stopping ${name}/$job."
			kill -TERM ${rc_pid}
			wait_for_pids ${rc_pid}
		else
			echo "${name}/$job is not running."
			rv=1
		fi
	done
	return $rv
}

memcached_status()
{
	rv=0
	for job in "" $memcached_jobs; do
		[ -z $job ] && continue
		memcached_pid $job
		if [ -n "${rc_pid}" ]; then
			echo "${name}/${job} is running as pid ${rc_pid}."
		else
			echo "${name}/${job} is not running."
			rv=1
		fi
	done
	return $rv
}

load_rc_config $name
run_rc_command "$1"