Lines 1-37
Link Here
|
1 |
#!/bin/sh |
1 |
#!/bin/sh |
2 |
# |
|
|
3 |
# $FreeBSD$ |
2 |
# $FreeBSD$ |
4 |
# |
|
|
5 |
|
3 |
|
6 |
# PROVIDE: pmacctd |
4 |
# PROVIDE: pmacctd |
7 |
# REQUIRE: NETWORKING |
5 |
# REQUIRE: DAEMON |
|
|
6 |
# BEFORE: LOGIN |
8 |
# KEYWORD: shutdown |
7 |
# KEYWORD: shutdown |
9 |
|
8 |
|
10 |
# |
|
|
11 |
# Add the following lines to /etc/rc.conf to enable pmacctd: |
9 |
# Add the following lines to /etc/rc.conf to enable pmacctd: |
12 |
# |
10 |
# pmacctd_enable (bool): Set to YES to enable pmacctd |
13 |
# pmacctd_enable="YES" |
11 |
# Default: NO |
14 |
# |
12 |
# pmacctd_flags (str): Extra flags passed to pmacctd |
15 |
# You can define flags for pmacctd running. See pmacctd(8) for details. |
13 |
# Default: -D |
16 |
# |
14 |
# pmacctd_conf (str): pmacctd configuration file |
17 |
# Example: |
15 |
# Default: %%PREFIX%%/etc/pmacctd.conf |
18 |
# pmacctd_flags="-f %%PREFIX%%/etc/pmacctd.conf -i em0" |
16 |
# |
19 |
# |
17 |
# To enable multi interface, use: |
20 |
# Default flags: -f %%PREFIX%%/etc/pmacctd.conf |
18 |
# pmacctd_interfaces="em0 em1" |
21 |
# |
19 |
# defaults will follow, pmacctd_conf becomes 'pmacctd_em0_conf', etc. |
22 |
|
20 |
|
23 |
. /etc/rc.subr |
21 |
. /etc/rc.subr |
24 |
|
22 |
|
25 |
name=pmacctd |
23 |
name="pmacctd" |
26 |
rcvar=pmacctd_enable |
24 |
rcvar=pmacctd_enable |
27 |
|
25 |
|
28 |
command=%%PREFIX%%/sbin/$name |
26 |
command="/usr/local/sbin/pmacctd" |
29 |
command_args="-D" |
|
|
30 |
|
31 |
# set defaults |
32 |
|
33 |
pmacctd_enable=${pmacctd_enable:-"NO"} |
34 |
pmacctd_flags=${pmacctd_flags:-"-f %%PREFIX%%/etc/pmacctd.conf"} |
35 |
|
27 |
|
36 |
load_rc_config $name |
28 |
load_rc_config $name |
37 |
run_rc_command "$1" |
29 |
|
|
|
30 |
[ -z "$pmacctd_enable" ] && pmacctd_enable="NO" |
31 |
[ -z "$pmacctd_conf" ] && pmacctd_conf="%%PREFIX%%/etc/pmacctd.conf" |
32 |
[ -z "$pmacctd_flags" ] && pmacctd_flags="-D" |
33 |
|
34 |
[ -n "$pmacctd_conf" ] && pmacctd_flags="$pmacctd_flags -f $pmacctd_conf" |
35 |
|
36 |
if [ -n "$pmacctd_interfaces" ]; then |
37 |
_1=$1 |
38 |
if [ $# -gt 1 ]; then shift; pmacctd_interfaces=$*; fi |
39 |
pmacctd_conf="" |
40 |
pmacctd_flags="" |
41 |
rc=0 |
42 |
for i in ${pmacctd_interfaces}; do |
43 |
eval _conf=\$pmacctd_${i}_conf |
44 |
eval _flags=\$pmacctd_${i}_flags |
45 |
[ -z "$_flags" ] && _flags="-D" |
46 |
eval pidfile="/var/run/pmacctd_${i}.pid" |
47 |
|
48 |
command_args="$_flags -F $pidfile -f $_conf -i $i" |
49 |
run_rc_command "$_1" |
50 |
if [ $? -ne 0 ]; then rc=1; fi |
51 |
unset _pidcmd _rc_restart_done |
52 |
done |
53 |
exit $rc |
54 |
else |
55 |
run_rc_command "$1" |
56 |
fi |