summaryrefslogtreecommitdiffstats
path: root/main/sysklogd/sysklogd.initd
blob: 59db00fc991038637231c0319a824382b72f2da7 (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
#!/sbin/runscript
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License, v2 or later
# $Header: /var/cvsroot/gentoo-x86/app-admin/sysklogd/files/sysklogd.rc6,v 1.12 2007/05/01 12:49:04 uberlord Exp $

opts="reload"

depend() {
	need clock hostname cron
	provide logger
}

start_daemon() {
	local retval=0
	local daemon="$1"
	local options="$2"

	[ -z "${daemon}" ] && return 1

	ebegin "sysklogd -> start: ${daemon}"
	start-stop-daemon --start --exec /usr/sbin/"${daemon}" \
		--pidfile /var/run/"${daemon}".pid -- ${options}
	retval=$?
	eend ${retval} "Failed to start ${daemon}"

	return ${retval}
}

stop_daemon() {
	local retval=0
	local daemon="$1"

	[ -z "${daemon}" ] && return 1
	
	ebegin "sysklogd -> stop: ${daemon}"
	# syslogd can be stubborn some times (--retry 15)...
	start-stop-daemon --stop --retry 15 --quiet --pidfile /var/run/"${daemon}".pid
	retval=$?
	eend ${retval} "Failed to stop ${daemon}"

	return ${retval}
}

start() {
	start_daemon "syslogd" "${SYSLOGD}" || return 1

	# vservers should not start klogd
	[ "$RC_SYS" = "VSERVER" ] && return 0
	# klogd do not always start proper if started too early
	sleep 1

	if ! start_daemon "klogd" "${KLOGD}" ; then
		stop_daemon "syslogd"
		return 1
	fi

	return 0
}

stop() {
	if [ "$RC_SYS" != "VSERVER" ]; then
		stop_daemon "klogd" || return 1
	fi
	stop_daemon "syslogd" || return 1 
	return 0
}

reload() {
	local ret=0

	ebegin "Reloading configuration"

	start-stop-daemon --stop --oknodo --signal HUP --pidfile /var/run/syslogd.pid
	ret=$((${ret} + $?))
	start-stop-daemon --stop --oknodo --signal USR1 --pidfile /var/run/klogd.pid
	ret=$((${ret} + $?))

	eend ${ret}
}