]> git.pld-linux.org Git - packages/daemontools.git/blob - daemontools.init
- tabs in preamble
[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:           $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 RETVAL=0
32 # See how we were called.
33 case "$1" in
34   start)
35         # Check if the service is already running?
36         if [ ! -f /var/lock/subsys/svscan ]; then
37                 msg_starting svscan;
38                 busy
39                 # we can't get status report from background job
40                 # but we can only do simple file check
41                 if [ -w $SVSCAN_DIR ]; then
42                         daemon --fork svscan $SVSCAN_DIR
43                         RETVAL=$?
44                 else
45                         fail
46                         echo $(nls "Missing service directory")'!'
47                         nls "Create %s first." "$SVSCAN_DIR"
48                         RETVAL=1
49                 fi
50                 [ $RETVAL -eq 0 ] && touch /var/lock/subsys/svscan
51         else
52                 msg_already_running svscan
53         fi
54         ;;
55   stop)
56         if [ -f /var/lock/subsys/svscan ]; then
57                 msg_stopping svscan
58                 killproc svscan
59                 svc=$(echo $SVSCAN_DIR/*)
60                 if [ "$svc" != "$SVSCAN_DIR/*" ]; then
61                         svc -d -x $SVSCAN_DIR/* \
62                                 $(find $SVSCAN_DIR/* -maxdepth 0 -follow -perm -1000|sed s-\$-/log-)
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   restart|force-reload)
70         $0 stop
71         $0 start
72         exit $?
73         ;;
74   status)
75         status svscan
76         exit $?
77         ;;
78   *)
79         msg_usage "$0 {start|stop|restart|force-reload|status}"
80         exit 3
81 esac
82
83 exit $RETVAL
This page took 0.06473 seconds and 3 git commands to generate.