|  | 级别: 初级 IBM,
2002 年 8 月 01 日 IBM eServer Developer Domain is an ever-growing collection of content and resources for developers on IBM eServer hardware and related software. Dedicated to iSeries, pSeries, xSeries and zSeries developer content , IBM eServer Developer Domain offers articles, sample code, tutorials, how-tos, tools, news, case studies, discussion forums -- virtually anything developers want or need to help get their jobs done.
1 #!/bin/sh
2 #
3 # Startup script LDAP stuff.
4 #
5 #
6 # description: startup/shutdown script for slapd
7 # processname: slapd
8 #
9 # Licence: GPL
10 #our primary node
11 MASNODE='slave6'
12 # process information for kill
13 PIDFILE=/usr/local/var/slapd.pid
14 APP=/usr/local/libexec/slapd
15 SLURP=/usr/local/libexec/slurpd
16 # we use two configuration files, depending on role
17 MASTER=/usr/local/etc/openldap/slapd.master.conf
18 SLAVE=/usr/local/etc/openldap/slapd.slave.conf
19 # Source function library.
20 . /etc/ha.d/shellfuncs
21 test_start () {
22 # first we kill everything possible
23 ha_log "info: $0: Starting"
24 if [ -f $PIDFILE ]; then
25 PID=`head -1 $PIDFILE`
26 ha_log "info: $0: Appears to already be running, killing [$PID]"
27 kill -9 $PID > /dev/null
28 rm $PIDFILE
29 fi
30 # slurpd should die when the slapd process does, but just in case:
31 for i in `ps -ef | grep slurp | grep -v grep | awk '{print $2}' `
32 do
33 kill -9 $i
34 done
35
36 # slight delay to allow for stability
37 sleep 2
38 # now we will attempt to start as a master
39 $APP -f $MASTER
40
41 if [ ! -f $PIDFILE ]; then
42 ha_log "warn: $0: Slapd did not start properly"
43 exit 1
44 fi
45 # Now we determine if this is the primary or secondary node
46 # first wait a bit for stability
47 sleep 10
48 # if we are secondary, do nothing: otherwise
49 if [ $HA_CURHOST == $MASNODE ]; then
50 OTHER=`/etc/ha.d/resource.d/other_state`
51 ha_log "info: $0 other node test returns $OTHER"
52 if [[ $OTHER == 'active' || $OTHER == 'up' ]]; then
53 /usr/bin/rsh slave5 '/etc/ha.d/resource.d/slapd.slave'
54 $SLURP -f $MASTER
55 else
56 ha_log "warn: $0: slave node is not responding"
57 fi
58 fi
59
60 }
61 test_stop () {
62 ha_log "info: $0: Shutting down"
63 if [ -f $PIDFILE ]; then
64 PID=`head -1 $PIDFILE`
65 kill -9 $PID > /dev/null
66 rm $PIDFILE
67 fi
68 # Let's be sure it's dead, Jim
69 for i in `ps -ef | grep slap | grep -v grep | awk '{print $2}' `
70 do
71 kill -9 $i
72 done
73 for i in `ps -ef | grep slurp | grep -v grep | awk '{print $2}' `
74 do
75 kill -9 $i
76 done
77
78
79 }
80 # See how we were called.
81 case "$1" in
82 start)
83 test_start
84 ;;
85 stop)
86 test_stop
87 ;;
88 restart)
89 $0 stop
90 $0 start
91 ;;
92 status)
93 if [ -f $PIDFILE ]; then
94 echo running
95 else
96 echo stopped
97 fi
98 ;;
99 *)
100 echo "Usage: $0 {start|stop|restart|status}"
101 exit 1
102 esac
103 exit 0
|
关于作者  | |  | IBM has authored this article |
对本文的评价
|  | IBM 公司保留在 developerWorks 网站上发表的内容的著作权。未经IBM公司或原始作者的书面明确许可,请勿转载。如果您希望转载,请通过 提交转载请求表单 联系我们的编辑团队。 |