fixes init script for non ipv6 enabled systems #472755
[packages/xinetd.git] / contrib / xinetd
1 #!/bin/bash
2 #
3 # xinetd        This starts and stops xinetd.
4 #
5 # chkconfig: 345 65 50
6 # description: xinetd is a powerful replacement for inetd. \
7 #              xinetd has access control machanisms, extensive \
8 #              logging capabilities, the ability to make services \
9 #              available based on time, and can place \
10 #              limits on the number of servers that can be started, \
11 #              among other things.
12 #
13 # processname: /usr/sbin/xinetd
14 # config: /etc/sysconfig/network
15 # config: /etc/xinetd.conf
16 # pidfile: /var/run/xinetd.pid
17
18 PATH=/sbin:/bin:/usr/bin:/usr/sbin
19
20 # Source function library.
21 . /etc/init.d/functions
22
23 # Get config.
24 test -f /etc/sysconfig/network && . /etc/sysconfig/network
25
26 # More config
27
28 test -f /etc/sysconfig/xinetd && . /etc/sysconfig/xinetd
29
30 # Check that networking is up.
31 [ ${NETWORKING} = "yes" ] || exit 0
32
33 [ -f /usr/sbin/xinetd ] || exit 1
34 [ -f /etc/xinetd.conf ] || exit 1
35
36 RETVAL=0
37
38 if [ "$NETWORKING_IPV6" = "yes" ] && [ -x /usr/sbin/xinetd6 ]; then
39     prog="xinetd6"
40 else
41     prog="xinetd"
42 fi
43
44 start(){
45     echo -n $"Starting $prog: "
46     # Need to get rid of localization for external services - 
47     # it doesn't make much sense to have i18n on the server side here
48
49     LANG=en_US
50     LC_TIME=en_US
51     LC_ALL=en_US
52     LC_MESSAGES=en_US
53     LC_NUMERIC=en_US
54     LC_MONETARY=en_US
55     LC_COLLATE=en_US
56     export LANG LC_TIME LC_ALL LC_MESSAGES LC_NUMERIC LC_MONETARY LC_COLLATE
57     unset HOME MAIL USER USERNAME
58     daemon $prog -stayalive -reuse -pidfile /var/run/xinetd.pid "$EXTRAOPTIONS"
59     RETVAL=$?
60     echo
61     touch /var/lock/subsys/xinetd
62     return $RETVAL
63 }
64
65 stop(){
66     echo -n $"Stopping $prog: "
67     killproc $prog
68     RETVAL=$?
69     echo
70     rm -f /var/lock/subsys/xinetd
71     return $RETVAL
72
73 }
74
75 reload(){
76     echo -n $"Reloading configuration: "        
77     killproc $prog -HUP
78     RETVAL=$?
79     echo
80     return $RETVAL
81 }
82
83 restart(){
84     stop
85     start
86 }
87
88 condrestart(){
89     [ -e /var/lock/subsys/xinetd ] && restart
90     return 0
91 }
92
93 dump(){
94     echo -n $"Dumping configuration: "  
95     killproc $prog -USR1
96     RETVAL=$?
97     echo
98     return $RETVAL
99 }
100
101 check(){
102     echo -n $"Performing Consistency Check: "   
103     /bin/kill -s IOT $prog
104     RETVAL=$?
105     echo
106     return $RETVAL
107 }
108
109 # See how we were called.
110 case "$1" in
111     start)
112         start
113         ;;
114     stop)
115         stop
116         ;;
117     status)
118         status $prog
119         ;;
120     restart)
121         restart
122         ;;
123     reload)
124         reload
125         ;;
126     condrestart)
127         condrestart
128         ;;
129     dump)
130         dump
131         ;;
132     check)
133         check
134         ;;
135     *)
136         echo $"Usage: $0 {start|stop|status|restart|condrestart|reload|dump|check}"
137         RETVAL=1
138 esac
139
140 exit $RETVAL