blob: 2a356a637ab0cc0a1194f8bfe3d815e5c8572ecd [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
Andrew Geissler82c905d2020-04-13 13:39:40 -050021binpath_syslogd=/usr/sbin/syslogd
Patrick Williamsc124f4f2015-09-15 14:41:29 -050022
23test -x $binpath || exit 0
24
25test ! -r /etc/default/syslogd || . /etc/default/syslogd
26
27create_xconsole()
28{
29 # Only proceed if /dev/xconsole is used at all
30 if ! grep -q '^[^#].*/dev/xconsole' /etc/syslog.conf
31 then
32 return
33 fi
34
35 if [ ! -e /dev/xconsole ]; then
36 mknod -m 640 /dev/xconsole p
37 else
38 chmod 0640 /dev/xconsole
39 fi
40 chown root:adm /dev/xconsole
41 test ! -x /sbin/restorecon || /sbin/restorecon /dev/xconsole
42}
43
44log_begin_msg () {
45 echo -n $1
46}
47
48log_end_msg () {
49 echo $1
50}
51
52log_success_msg () {
53 echo $1
54}
55
56running()
57{
58 # No pidfile, probably no daemon present
59 #
60 if [ ! -f $pidfile ]
61 then
62 return 1
63 fi
64
65 pid=`cat $pidfile_syslogd`
66
67 # No pid, probably no daemon present
68 #
69 if [ -z "$pid" ]
70 then
71 return 1
72 fi
73
74 if [ ! -d /proc/$pid ]
75 then
76 return 1
77 fi
78
79 cmd=`cat /proc/$pid/cmdline | tr "\000" "\n"|head -n 1`
80
81 # No syslogd?
82 #
83 if [ "$cmd" != "$binpath" ]
84 then
85 return 1
86 fi
87
88 return 0
89}
90
Brad Bishop96ff1982019-08-19 13:50:42 -040091waitpid ()
92{
93 pid=$1
94 # Give pid a chance to exit before we restart with a 5s timeout in 1s intervals
95 if [ -z "$pid" ]; then
96 return
97 fi
98 timeout=5;
99 while [ $timeout -gt 0 ]
100 do
101 timeout=$(( $timeout-1 ))
102 kill -0 $pid 2> /dev/null || break
103 sleep 1
104 done
105}
106
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500107case "$1" in
108 start)
109 log_begin_msg "Starting system log daemon..."
110 create_xconsole
111 start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD
112 log_end_msg $?
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500113 ;;
114 stop)
115 log_begin_msg "Stopping system log daemon..."
116 start-stop-daemon --stop --quiet --pidfile $pidfile_syslogd --name syslogd
117 log_end_msg $?
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500118 ;;
119 reload|force-reload)
120 log_begin_msg "Reloading system log daemon..."
121 start-stop-daemon --stop --quiet --signal 1 --pidfile $pidfile_syslogd --name syslogd
122 log_end_msg $?
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500123 ;;
124 restart)
125 log_begin_msg "Restarting system log daemon..."
Brad Bishop96ff1982019-08-19 13:50:42 -0400126 pid=`cat $pidfile_syslogd 2> /dev/null`
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500127 start-stop-daemon --stop --retry 5 --quiet --pidfile $pidfile_syslogd --name syslogd
Brad Bishop96ff1982019-08-19 13:50:42 -0400128 waitpid $pid
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500129 start-stop-daemon --start --quiet --pidfile $pidfile_syslogd --name syslogd --startas $binpath_syslogd -- $SYSLOGD
130 log_end_msg $?
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500131 ;;
132 reload-or-restart)
133 if running
134 then
135 $0 reload
136 else
137 $0 start
138 fi
139 ;;
140 status)
141 status syslogd
142 RETVAL=$?
Patrick Williamsc124f4f2015-09-15 14:41:29 -0500143 [ $RETVAL -eq 0 ] && exit $rval
144 exit $RETVAL
145 ;;
146 *)
147 log_success_msg "Usage: /etc/init.d/sysklogd {start|stop|reload|restart|force-reload|reload-or-restart|status}"
148 exit 1
149esac
150
151exit 0