]> git.pld-linux.org Git - packages/daemontools.git/blob - daemontools.init
- drop requirement of find(1)
[packages/daemontools.git] / daemontools.init
1 #!/bin/sh
2 #
3 # svscan        svscan (scan and run services)
4 #
5 # chkconfig:    345 14 89
6 #
7 # description:  svscan (scan and run services) is a server part of the daemontools suite.
8 #
9 # $Id$
10 #
11
12 # Source function library
13 . /etc/rc.d/init.d/functions
14
15 # Get network config
16 . /etc/sysconfig/network
17
18 # Get service config
19 [ -f /etc/sysconfig/svscan ] && . /etc/sysconfig/svscan
20
21 # Check that networking is up.
22 if is_yes "${NETWORKING}"; then
23         if [ ! -f /var/lock/subsys/network -a "$1" != stop -a "$1" != status ]; then
24                 msg_network_down svscan
25                 exit 1
26         fi
27 else
28         exit 0
29 fi
30
31 start() {
32         # Check if the service is already running?
33         if [ ! -f /var/lock/subsys/svscan ]; then
34                 msg_starting svscan
35                 busy
36                 # we can't get status report from background job
37                 # but we can only do simple file check
38                 if [ -w $SVSCAN_DIR ]; then
39                         daemon --fork /usr/sbin/svscan $SVSCAN_DIR
40                         RETVAL=$?
41                 else
42                         fail
43                         nls "Missing service directory. Create %s first." "$SVSCAN_DIR"
44                         RETVAL=1
45                 fi
46                 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/svscan
47         else
48                 msg_already_running svscan
49         fi
50 }
51
52 stop() {
53         if [ -f /var/lock/subsys/svscan ]; then
54                 msg_stopping svscan
55                 killproc svscan
56                 for s in $SVSCAN_DIR/{,*/}*/run; do
57                         if [ -x "$s" ]; then
58                                 svc="$svc ${s%/run}"
59                         fi
60                 done
61                 if [ "$svc" ]; then
62                         svc -d -x $svc
63                 fi
64                 rm -f /var/run/svscan.pid /var/lock/subsys/svscan >/dev/null 2>&1
65         else
66                 msg_not_running svscan
67         fi
68 }
69
70 condrestart() {
71         if [ -f /var/lock/subsys/svscan ]; then
72                 stop
73                 start
74         else
75                 msg_not_running svscan
76                 RETVAL=$1
77         fi
78 }
79
80 RETVAL=0
81 # See how we were called.
82 case "$1" in
83   start)
84         start
85         ;;
86   stop)
87         stop
88         ;;
89   restart|force-reload)
90         stop
91         start
92         ;;
93   try-restart)
94         condrestart 0
95         ;;
96   force-reload)
97         condrestart 7
98         ;;
99   status)
100         status svscan
101         RETVAL=$?
102         svstat $SVSCAN_DIR/*
103         RETVAL=$(($RETVAL + $?))
104         ;;
105   *)
106         msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
107         exit 3
108 esac
109
110 exit $RETVAL
This page took 0.076484 seconds and 3 git commands to generate.