]> git.pld-linux.org Git - packages/daemontools.git/blob - daemontools.init
- really drop upstart
[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 service config
16 [ -f /etc/sysconfig/svscan ] && . /etc/sysconfig/svscan
17
18 start() {
19         # Check if the service is already running?
20         if [ -f /var/lock/subsys/svscan ]; then
21                 msg_already_running svscan
22                 return
23         fi
24
25         msg_starting svscan
26         busy
27         # we can't get status report from background job
28         # but we can only do simple file check
29         if [ -w $SVSCAN_DIR ]; then
30                 daemon --fork /usr/sbin/svscan $SVSCAN_DIR
31                 RETVAL=$?
32         else
33                 fail
34                 nls "Missing service directory. Create %s first." "$SVSCAN_DIR"
35                 RETVAL=1
36         fi
37         [ $RETVAL -eq 0 ] && touch /var/lock/subsys/svscan
38 }
39
40 stop() {
41         if [ ! -f /var/lock/subsys/svscan ]; then
42                 msg_not_running svscan
43                 return
44         fi
45
46         msg_stopping svscan
47         killproc svscan
48         for s in $SVSCAN_DIR/*{,/log}/run; do
49                 if [ -x "$s" ]; then
50                         svc="$svc ${s%/run}"
51                 fi
52         done
53         if [ "$svc" ]; then
54                 svc -d -x $svc
55         fi
56         rm -f /var/run/svscan.pid /var/lock/subsys/svscan >/dev/null 2>&1
57 }
58
59 condrestart() {
60         if [ ! -f /var/lock/subsys/svscan ]; then
61                 msg_not_running svscan
62                 RETVAL=$1
63                 return
64         fi
65
66         stop
67         start
68 }
69
70 RETVAL=0
71 # See how we were called.
72 case "$1" in
73   start)
74         start
75         ;;
76   stop)
77         stop
78         ;;
79   restart|force-reload)
80         stop
81         start
82         ;;
83   try-restart)
84         condrestart 0
85         ;;
86   force-reload)
87         condrestart 7
88         ;;
89   status)
90         status svscan
91         RETVAL=$?
92         svstat $SVSCAN_DIR/*
93         RETVAL=$(($RETVAL + $?))
94         ;;
95   *)
96         msg_usage "$0 {start|stop|restart|try-restart|force-reload|status}"
97         exit 3
98 esac
99
100 exit $RETVAL
This page took 0.076723 seconds and 3 git commands to generate.