aboutsummaryrefslogtreecommitdiff
blob: fff99d7631a20e761f56e3a510e0dd7f3e0c9843 (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
#!/sbin/openrc-run
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Id: bf162ad7452283247e5b127696f92bdba30c866b $

extra_started_commands="reload"
piddir="/var/run/samba"

depend() {
	after slapd
	need net
	use cupsd
}

DAEMONNAME="${SVCNAME##samba.}"
[ "${DAEMONNAME}" != "samba" ] && daemon_list=${DAEMONNAME}

signal_do() {
	local signal="$1"
	[ -z "${signal}" ] && return 0

	local result=0 last_result=0 daemon= cmd_exec=
	for daemon in ${daemon_list} ; do
		eval cmd_exec=\$${daemon}_${signal}
		if [ -n "${cmd_exec}" ]; then
			ebegin "${my_service_name} -> ${signal}: ${daemon}"
			#echo ${cmd_exec} '->' ${!cmd_exec}
			${cmd_exec} > /dev/null
			last_result=$?
			eend ${last_result}
		fi
		result=$(( ${result} + ${last_result} ))
	done
	return ${result}
}

start_pre() {
	checkpath -d /var/run/samba || return 1
}

start() {
	${my_service_PRE}
	[ -d "${piddir}" ] || mkdir -p "${piddir}"
	signal_do start && return 0

	eerror "Error: starting services (see system logs)"
	signal_do stop
	return 1
}
stop() {
	${my_service_PRE}
	if signal_do stop ; then
		${my_service_POST}
		return 0
	fi
}
reload() {
	${my_service_PRE}
	signal_do reload
}