|
楼主 |
发表于 2005-6-8 14:57:56
|
显示全部楼层
延伸的另一个问题,原来在我机器里面的/etc/rc.d/apmd的服务启动脚本里面,已经是通过apmd -P /etc/apmd_proxy来启动apm服务的,不过这个脚本好象有点问题,就是我在/etc/apmd_proxy中所设置的事件并没有真正被应用,估计其实启动脚本内的命令行“apmd -P /etc/apmd_proxy” 并没有在机器启动并加载apmd服务的时候被执行,这应该和apmd的启动脚本中的设置有关!
不过在机器启动登录后,我进入/etc/rc.d目录,在目录下执行
sh apmd stop (先停止apmd服务)
sh apmd start (再启动apmd服务)
这样再启动后,估计apmd -P /etc/apmd_proxy 这条命令就被真正执行了,我在apmd_proxy中所设置的相关事件也能通过apm命令操作并产生效用了!
我对启动脚本语言和它的设置都不很了解,因此想请大家帮忙看看apmd服务启动脚本中设计,看看为什么在计算机启动的时候,里面的命令/usr/sbin/apmd -P /etc/apmd_proxy没有并真正执行,但系统确显示apm服务已经启动!
以下为/etc/rc.d/apmd服务启动脚本代码
- #!/bin/bash
- . /etc/rc.conf
- . /etc/rc.d/functions
- PID=`cat /var/run/apmd.pid 2>/dev/null`
- case "$1" in
- start)
- stat_busy "Starting APM Daemon"
- if [ -z "$PID" ]; then
- /usr/sbin/apmd -P /etc/apmd_proxy
- fi
- if [ ! -z "$PID" -o $? -gt 0 ]; then
- stat_fail
- else
- add_daemon apmd
- stat_done
- fi
- ;;
- stop)
- stat_busy "Stopping APM Daemon"
- [ ! -z "$PID" ] && kill $PID &> /dev/null
- if [ $? -gt 0 ]; then
- stat_fail
- else
- rm_daemon apmd
- stat_done
- fi
- ;;
- restart)
- $0 stop
- sleep 1
- $0 start
- ;;
- *)
- echo "usage: $0 {start|stop|restart}"
- esac
复制代码
我只知道,apmd的启动脚本中如果要执行命令/usr/sbin/apmd -P /etc/apmd_proxy,就需要if函数去判断 [ -z "$PID" ]这个东西的真假值,但不知道这东西代笔什么?而PID=`cat /var/run/apmd.pid 2>/dev/null` 这样设置又有什么作用?
而为什么我先停止apmd的服务之后,再手工启动一次后命令/usr/sbin/apmd -P /etc/apmd_proxy又被执行了,而开机的就没有被执行! |
|