-
Notifications
You must be signed in to change notification settings - Fork 0
/
fluentd
118 lines (107 loc) · 1.74 KB
/
fluentd
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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
#!/bin/bash
#/etc/init.d/fluentd
PID_FILE=/data/fluentd/fluentd.pid
CONF_FILE=/data/fluentd/fluent.conf
LOG_FILE=/data/fluentd/fluent/fluent.log
DEFAULT_RVM_PATH=/usr/local/rvm
JEMALLOC=/usr/bin/jemalloc.sh
F_USER=root
F_GROUP=root
RUBY_VER="1.9.3"
if [ -z $rvm_path ]; then
export rvm_path=$DEFAULT_RVM_PATH
fi
activate_rvm()
{
source $rvm_path/scripts/rvm
rvm use $RUBY_VER 1> /dev/null
}
prepare_dirs()
{
mkdir -p $(dirname $LOG_FILE)
mkdir -p $(dirname $PID_FILE)
}
is_alive()
{
if [ -f "$PID_FILE" ]; then
kill -0 $(cat "$PID_FILE") > /dev/null 2>&1
return $?
else
return 1
fi
}
start()
{
if is_alive; then
echo "fluentd already started."
return 1
else
if [ -f $PID_FILE ]; then rm -f $PID_FILE; fi
fi
prepare_dirs
activate_rvm
echo -n "Starting fluentd: "
$JEMALLOC fluentd --daemon $PID_FILE --user $F_USER --group $F_GROUP --config $CONF_FILE --log $LOG_FILE
echo "done."
}
stop()
{
if [ ! -f "$PID_FILE" ] || [ -z $(cat "$PID_FILE") ]; then
echo "fluentd is not running"
return 0
fi
echo -n "Stopping fluentd: "
kill -TERM $(cat "$PID_FILE")
count=0
while is_alive; do
count=`expr $count + 1`
if [ $count == 60 ]; then
echo " failed."
return 1
fi
sleep 1
done
rm -f $PID_FILE
echo "done."
}
restart()
{
stop && start
}
reload()
{
if is_alive; then
kill -HUP $(cat "$PID_FILE")
else
echo "fluentd is not running"
fi
}
update()
{
activate_rvm
gem update fluentd
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
reload)
reload
;;
update)
stop
update
start
;;
*)
echo "Usage: $0 {start|stop|restart|reload|update}"
exit 1
;;
esac
exit $?