]> TLD Linux GIT Repositories - packages/syslog-ng.git/blob - syslog-ng.init
- drop PLD stuff, use system libivykis (we are using stable one)
[packages/syslog-ng.git] / syslog-ng.init
1 #!/bin/sh
2 #
3 # syslog        Starts syslog-ng (syslogd replacement).
4 #
5 # chkconfig:    2345 17 83
6 # description:  Syslog is the facility by which many daemons use to log \
7 #               messages to various system log files. It is a good idea to \
8 #               always run syslog.
9
10 # Source function library
11 . /etc/rc.d/init.d/functions
12
13 # Get service config
14 if [ -f /etc/sysconfig/syslog-ng ]; then
15         . /etc/sysconfig/syslog-ng
16 fi
17
18 # configtest itself
19 # must return non-zero if check failed
20 # output is discarded if checkconfig is ran without details
21 configtest() {
22         syslog-ng $OPTIONS -F -s -p /var/run/syslog-ng-syntaxcheck.pid
23         return $?
24 }
25
26 # wrapper for configtest
27 checkconfig() {
28         local details=${1:-0}
29
30         if [ $details = 1 ]; then
31                 # run config test and display report (status action)
32                 show "Checking %s configuration" "syslog-ng"; busy
33                 local out
34                 out=$(configtest 2>&1)
35                 RETVAL=$?
36                 if [ $RETVAL = 0 ]; then
37                         ok
38                 else
39                         fail
40                 fi
41                 [ "$out" ] && echo >&2 "$out"
42         else
43                 # run config test and abort with nice message if failed
44                 # (for actions checking status before action).
45                 configtest >/dev/null 2>&1
46                 RETVAL=$?
47                 if [ $RETVAL != 0 ]; then
48                         show "Checking %s configuration" "syslog-ng"; fail
49                         nls 'Configuration test failed. See details with %s "checkconfig"' $0
50                         exit $RETVAL
51                 fi
52         fi
53 }
54
55 start() {
56         # Check if the service is already running?
57         if [ -f /var/lock/subsys/syslog-ng ]; then
58                 msg_already_running "syslog-ng"
59                 return
60         fi
61
62         msg_starting "syslog-ng"
63         emit starting JOB=syslog-ng SERVICE_syslog=y
64         daemon @@SBINDIR@@/syslog-ng -f /etc/syslog-ng/syslog-ng.conf --worker-threads=1024 $OPTIONS
65         RETVAL=$?
66         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog-ng
67         emit --no-wait started JOB=syslog-ng SERVICE_syslog=y
68 }
69
70 stop() {
71         if [ ! -f /var/lock/subsys/syslog-ng ]; then
72                 msg_not_running "syslog-ng"
73                 return
74         fi
75
76         msg_stopping "syslog-ng"
77         emit stopping JOB=syslog-ng SERVICE_syslog=y
78         killproc syslog-ng
79         emit --no-wait stopped JOB=syslog-ng SERVICE_syslog=y
80         rm -f /var/lock/subsys/syslog-ng >/dev/null 2>&1
81 }
82
83 condrestart() {
84         if [ ! -f /var/lock/subsys/syslog-ng ]; then
85                 msg_not_running "syslog-ng"
86                 RETVAL=$1
87                 return
88         fi
89
90         checkconfig
91         stop
92         start
93 }
94
95 reload() {
96         if [ ! -f /var/lock/subsys/syslog-ng ]; then
97                 msg_not_running "syslog-ng"
98                 RETVAL=7
99                 return
100         fi
101
102         checkconfig
103         msg_reloading "syslog-ng"
104         killproc syslog-ng -HUP
105         RETVAL=$?
106 }
107
108 flush_logs() {
109         if use_upstart && [ -f /etc/init/syslog-ng.conf ]; then
110                 checkconfig
111                 /sbin/initctl reload syslog-ng
112         elif [ -x /bin/systemd_booted ] && /bin/systemd_booted; then
113                 checkconfig
114                 msg_reloading "syslog-ng"
115                 /bin/systemctl reload syslog-ng.service
116                 RETVAL=$?
117                 [ $RETVAL -eq 0 ] && ok || fail
118         elif [ -f /var/lock/subsys/syslog-ng ]; then
119                 checkconfig
120                 msg_reloading "syslog-ng"
121                 killproc syslog-ng -HUP
122                 RETVAL=$?
123         else
124                 msg_not_running "syslog-ng"
125                 RETVAL=7
126         fi
127 }
128
129 upstart_controlled --except checkconfig configtest flush-logs
130
131 RETVAL=0
132 # See how we were called.
133 case "$1" in
134   start)
135         configtest
136         start
137         ;;
138   stop)
139         stop
140         ;;
141   restart)
142         configtest
143         stop
144         start
145         ;;
146   try-restart)
147         condrestart 0
148         ;;
149   reload|force-reload)
150         reload
151         ;;
152   flush-logs)
153         flush_logs
154         ;;
155   checkconfig|configtest)
156         checkconfig 1
157         ;;
158   status)
159         status syslog-ng
160         exit $?
161         ;;
162   *)
163         msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status|checkconfig|flush-logs}"
164         exit 3
165 esac
166
167 exit $RETVAL