summaryrefslogtreecommitdiff
path: root/package/system/procd/files/log.init
blob: 4a878fed99dba868c2f888684f4cf96d94bcde13 (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
#!/bin/sh /etc/rc.common
# Copyright (C) 2013 OpenWrt.org

# start after and stop before networking
START=21
STOP=89

USE_PROCD=1
NAME=logread
PROG=/sbin/logread
PIDCOUNT=1

start_service_file()
{
	local pid_file="/var/run/logread.${PIDCOUNT}.pid"
	local log_file log_size

	config_get log_file $1 log_file
        config_get log_size $1 log_size

	[ -z "${log_file}" ] && return

	procd_open_instance
	procd_set_param command "$PROG" -f -F "$log_file" -p "$pid_file"
        [ -n "${log_size}" ] && procd_append_param command -S "$log_size"
	procd_close_instance

	PIDCOUNT="$(( ${PIDCOUNT} + 1))"
}

start_service_remote()
{
	local pid_file="/var/run/logread.${PIDCOUNT}.pid"
	local log_ip log_port log_proto

	config_get log_ip $1 log_ip
	config_get log_port $1 log_port
	config_get log_proto $1 log_proto udp

	[ -z "${log_ip}" ] && return

	procd_open_instance
	procd_set_param command "$PROG" -f -r "$log_ip" "${log_port:-514}" -p "$pid_file"
        [ "${log_proto}" != "udp" ] || procd_append_param command -u
	procd_close_instance

	PIDCOUNT="$(( ${PIDCOUNT} + 1))"
}

service_triggers()
{
	procd_add_config_trigger "system" "/etc/init.d/log" "start"
}

start_service()
{
	config_load system
	config_foreach start_service_file system
	config_foreach start_service_remote system
}