]> TLD Linux GIT Repositories - packages/syslog-ng.git/blob - syslog-ng.init
- drop upstart/systemd code
[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 [ -f /var/lock/subsys/syslog-ng ]; then
110                 checkconfig
111                 msg_reloading "syslog-ng"
112                 killproc syslog-ng -HUP
113                 RETVAL=$?
114         else
115                 msg_not_running "syslog-ng"
116                 RETVAL=7
117         fi
118 }
119
120 RETVAL=0
121 # See how we were called.
122 case "$1" in
123   start)
124         configtest
125         start
126         ;;
127   stop)
128         stop
129         ;;
130   restart)
131         configtest
132         stop
133         start
134         ;;
135   try-restart)
136         condrestart 0
137         ;;
138   reload|force-reload)
139         reload
140         ;;
141   flush-logs)
142         flush_logs
143         ;;
144   checkconfig|configtest)
145         checkconfig 1
146         ;;
147   status)
148         status syslog-ng
149         exit $?
150         ;;
151   *)
152         msg_usage "$0 {start|stop|restart|try-restart|reload|force-reload|status|checkconfig|flush-logs}"
153         exit 3
154 esac
155
156 exit $RETVAL