blob: 73424840ba35caf4ed290aca6b3b2b747f7bf066 [file] [log] [blame]
Patrick Williamsc124f4f2015-09-15 14:41:29 -05001#! /bin/sh
2# /etc/init.d/sysklogd: start the system log daemon.
3
4### BEGIN INIT INFO
5# Provides: sysklogd
6# Required-Start: $remote_fs $time
7# Required-Stop: $remote_fs $time
8# Should-Start: $network
9# Should-Stop: $network
10# Default-Start: 2 3 4 5
11# Default-Stop: 0 1 6
12# Short-Description: System logger
13### END INIT INFO
14
15# Source function library.
16. /etc/init.d/functions
17
18PATH=/bin:/usr/bin:/sbin:/usr/sbin
19
20pidfile_syslogd=/var/run/syslogd.pid
21pidfile_klogd=/var/run/klogd.pid
22binpath_syslogd=/sbin/syslogd
23binpath_klogd=/sbin/klogd
24
25test -x $binpath || exit 0
26
27test ! -r /etc/default/syslogd || . /etc/default/syslogd
28
29create_xconsole()
30{
31 # Only proceed if /dev/xconsole is used at all
32 if ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf
33 then
34 return
35 fi
36
37 if [ ! -e /dev/xconsole ]; then
38 mknod -m 640 /dev/xconsole p
39 else
40 chmod 0640 /dev/xconsole
41 fi
42 chown root:adm /dev/xconsole
43 test ! -x /sbin/restorecon || /sbin/restorecon /dev/xconsole
44}
45
46log_begin_msg () {
47 echo -n $1
48}
49
50log_end_msg () {
51 echo $1
52}
53
54log_success_msg () {
55 echo $1
56}
57
58running()
59{
60 # No pidfile, probably no daemon present
61 #
62 if [ ! -f $pidfile ]
63 then
64 return 1
65 fi
66
67 pid=`cat $pidfile_syslogd`
68
69 # No pid, probably no daemon present
70 #
71 if [ -z "$pid" ]
72 then
73 return 1
74 fi
75
76 if [ ! -d /proc/$pid ]
77 then
78 return 1
79 fi
80
81 cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
82
83 # No syslogd?
84 #
85 if [ "$cmd" != "$binpath" ]
86 then
87 return 1
88 fi
89
90 return 0
91}
92
Brad Bishop96ff1982019-08-19 13:50:42 -040093waitpid ()
94{
95 pid=$1
96 # Give pid a chance to exit before we restart with a 5s timeout in 1s intervals
97 if [ -z "$pid" ]; then
98 return
99 fi
100 timeout=5;
101 while [ $timeout -gt 0 ]
102 do
103 timeout=$(( $timeout-1 ))
104 kill -0 $pid 2> /dev/null || break
105 sleep 1
106 done
107}
108
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500109case "$1" in
110 start)
111 log_begin_msg "Starting system log daemon..."
112 create_xconsole
113 start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD
114 log_end_msg $?
115 log_begin_msg "Starting kernel log daemon..."
116 start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD
117 log_end_msg $?
118 ;;
119 stop)
120 log_begin_msg "Stopping system log daemon..."
121 start-stop-daemon --stop --quiet --pidfile $pidfile_syslogd --name syslogd
122 log_end_msg $?
123 log_begin_msg "Stopping kernel log daemon..."
124 start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd
125 log_end_msg $?
126 ;;
127 reload|force-reload)
128 log_begin_msg "Reloading system log daemon..."
129 start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile_syslogd --name syslogd
130 log_end_msg $?
131 log_begin_msg "Reloading kernel log daemon..."
Brad Bishop96ff1982019-08-19 13:50:42 -0400132 pid=`cat $pidfile_klogd 2> /dev/null`
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500133 start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd
Brad Bishop96ff1982019-08-19 13:50:42 -0400134 waitpid $pid
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500135 start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD
136 log_end_msg $?
137 ;;
138 restart)
139 log_begin_msg "Restarting system log daemon..."
Brad Bishop96ff1982019-08-19 13:50:42 -0400140 pid=`cat $pidfile_syslogd 2> /dev/null`
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500141 start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile_syslogd --name syslogd
Brad Bishop96ff1982019-08-19 13:50:42 -0400142 waitpid $pid
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500143 start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD
144 log_end_msg $?
145 log_begin_msg "Reloading kernel log daemon..."
Brad Bishop96ff1982019-08-19 13:50:42 -0400146 pid=`cat $pidfile_klogd 2> /dev/null`
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500147 start-stop-daemon --stop --quiet --retry 3 --exec $binpath_klogd --pidfile $pidfile_klogd
Brad Bishop96ff1982019-08-19 13:50:42 -0400148 waitpid $pid
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500149 start-stop-daemon --start --quiet --pidfile $pidfile_klogd --name klogd --startas $binpath_klogd -- $KLOGD
150 log_end_msg $?
151 ;;
152 reload-or-restart)
153 if running
154 then
155 $0 reload
156 else
157 $0 start
158 fi
159 ;;
160 status)
161 status syslogd
162 RETVAL=$?
163 status klogd
164 rval=$?
165 [ $RETVAL -eq 0 ] && exit $rval
166 exit $RETVAL
167 ;;
168 *)
169 log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart|status}"
170 exit 1
171esac
172
173exit 0