LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1056|回复: 3

在rc.conf中启动服务的时候,能否加入启动参数,该如何格式书写?如果不能的,是否需要另外

[复制链接]
发表于 2005-6-8 12:14:43 | 显示全部楼层 |阅读模式
例如我要启动apmd服务,需要在启动的时候加入参数-P /etc/apmd_proxy 这样来启动,不过如果写成apmd -P /etc/apmd_proxy这样好象不能吧,这样的话,系统会把apmd做一个服务启动,而“-P"又做为一个服务,”/etc/apmd_proxy又被系统当做另一个服务吧!

这种情况大家有遇见过吗?该如何解决呢......
发表于 2005-6-8 12:56:51 | 显示全部楼层
修改/etc/rc.d/apmd文件实现。
回复 支持 反对

使用道具 举报

 楼主| 发表于 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服务启动脚本代码

  1. #!/bin/bash

  2. . /etc/rc.conf
  3. . /etc/rc.d/functions

  4. PID=`cat /var/run/apmd.pid 2>/dev/null`
  5. case "$1" in
  6.   start)
  7.     stat_busy "Starting APM Daemon"
  8.     if [ -z "$PID" ]; then
  9.       /usr/sbin/apmd -P /etc/apmd_proxy
  10.     fi
  11.     if [ ! -z "$PID" -o $? -gt 0 ]; then
  12.       stat_fail
  13.     else
  14.       add_daemon apmd
  15.       stat_done
  16.     fi
  17.     ;;
  18.   stop)
  19.     stat_busy "Stopping APM Daemon"
  20.     [ ! -z "$PID" ]  && kill $PID &> /dev/null
  21.     if [ $? -gt 0 ]; then
  22.       stat_fail
  23.     else
  24.       rm_daemon apmd
  25.       stat_done
  26.     fi
  27.     ;;
  28.   restart)
  29.     $0 stop
  30.     sleep 1
  31.     $0 start
  32.     ;;
  33.   *)
  34.     echo "usage: $0 {start|stop|restart}"  
  35. 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又被执行了,而开机的就没有被执行!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-8 19:53:53 | 显示全部楼层
原因已知道:

就是apmd服务的加载,需要在syslog-ng之后,估计是需要利用到syslog-ng加载后启动的某些功能!

如果先加载apmd之后再加载syslong-ng ,那么apmd服务加载的时候就会一直显示[BUSY]状态,而不是加载成功的[DONE]状态
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表