]> CyberLeo.Net >> Repos - FreeBSD/releng/9.2.git/blob - contrib/amd/scripts/ctl-amd.in
- Copy stable/9 to releng/9.2 as part of the 9.2-RELEASE cycle.
[FreeBSD/releng/9.2.git] / contrib / amd / scripts / ctl-amd.in
1 #!/bin/sh
2 # control starting, stopping, or restarting amd.
3 # usage: ctl-amd [start|stop|status|restart|condrestart|reload]
4 #
5 # Package:      am-utils-6.x
6 # Author:       Erez Zadok <ezk@cs.columbia.edu>
7 #
8 # chkconfig: - 72 28
9 # description: Runs the automount daemon that mounts devices and NFS hosts \
10 #              on demand.
11 # processname: amd
12 # config: /etc/amd.conf
13 #
14
15 # set path
16 prefix=@prefix@
17 exec_prefix=@exec_prefix@
18 PATH=@sbindir@:@bindir@:/usr/ucb:/usr/bin:/bin:${PATH}
19 export PATH
20
21 # kill the named process(es)
22 killproc()
23 {
24 # first try to get PID via an amq RPC
25 pid=`amq -p 2>/dev/null`
26 if test "$pid" != ""
27 then
28         kill $pid
29         return 0
30 fi
31
32 # try bsd style ps
33 pscmd="ps axc"
34 pid=`${pscmd} 2>/dev/null | grep "$1" | sed -e 's/^  *//' -e 's/ .*//'`
35 if test "$pid" != ""
36 then
37         kill $pid
38         return 0
39 fi
40
41 # try bsd44 style ps
42 pscmd="ps -x"
43 pid=`${pscmd} 2>/dev/null | grep "$1" | sed -e 's/^  *//' -e 's/ .*//'`
44 if test "$pid" != ""
45 then
46         kill $pid
47         return 0
48 fi
49
50 # try svr4 style ps
51 pscmd="ps -e"
52 pid=`${pscmd} 2>/dev/null | grep "$1" | sed -e 's/^  *//' -e 's/ .*//'`
53 if test "$pid" != ""
54 then
55         kill $pid
56         return 0
57 fi
58
59 # failed
60 return 1
61 }
62
63 # before running any real programs, chdir to / to avoid possible hangs on
64 # (NFS) mounts which may be restarting.
65 cd /
66
67 # search for amd.conf file
68 CF_FILE="@sysconfdir@/amd.conf"
69 # any local copy of the conf file overrides the "global" one
70 if [ -f /etc/amd.conf ]
71 then
72         CF_FILE="/etc/amd.conf"
73 fi
74 if [ -f @sysconfdir@/amd.conf ]
75 then
76         CF_FILE="@sysconfdir@/amd.conf"
77 fi
78 if [ -f /etc/local/amd.conf ]
79 then
80         CF_FILE="/etc/local/amd.conf"
81 fi
82
83 # if have the directory /tftpboot/.amd, then add a tag to include it
84 CF_TAG=""
85 if [ -d /tftpboot/.amd ]
86 then
87         CF_TAG="-T tftpboot"
88 fi
89
90 case "$1" in
91 'start')
92         # Start the amd automounter.
93         if [ -x @sbindir@/amd ]
94         then
95                 # do not specify full path of amd so killproc() works
96                 amd -F $CF_FILE $CF_TAG
97                 test -x /var/lock/subsys && touch /var/lock/subsys/amd
98         fi
99         ;;
100
101 'stop')
102         # prepend space to program name to ensure only amd process dies
103         echo "killing amd..."
104         killproc " amd"
105         wait4amd2die
106         rm -f /var/lock/subsys/amd
107         ;;
108
109 'restart')
110         # kill amd, wait for it to die, then restart
111         ctl-amd stop
112         if [ $? != 0 ]
113         then
114                 echo "NOT restarting amd!"
115         else
116                 echo "Restarting amd..."
117                 sleep 1
118                 ctl-amd start
119         fi
120         ;;
121
122 'condrestart')
123      if [ -f /var/lock/subsys/amd ]; then
124             ctl-amd stop
125             ctl-amd start
126         fi
127      ;;
128
129 'reload')
130         amq -f
131         ;;
132
133 'status')
134         # run amq -v to produce status
135         pid=`amq -p 2>/dev/null`
136         if [ $? = 0 ]
137         then
138                 echo "amd (pid $pid) is running..."
139         else
140                 echo "amd is stopped"
141         fi
142         ;;
143
144 # start_msg and stop_msg are for HPUX
145 'start_msg')
146         echo "Start am-utils 6.1 automounter"
147         ;;
148 'stop_msg')
149         echo "Stop am-utils 6.1 automounter"
150         ;;
151
152 *)
153         echo "Usage: $0 [start|stop|status|restart|condrestart|reload]"
154         ;;
155 esac