Chinaunix首页 | 论坛 | 博客
  • 博客访问: 916604
  • 博文数量: 75
  • 博客积分: 1216
  • 博客等级: 少尉
  • 技术积分: 1998
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-11 16:20
个人简介

优秀是一种习惯

文章分类

全部博文(75)

文章存档

2014年(1)

2013年(29)

2012年(45)

分类: 系统运维

2013-12-21 18:37:48

 最近增加ganglia的python模块后,发现ganglia官方源码包提供的gmond.init文件不好用了。

使用的python是自己编译的,如果python是系统rpm包安装的就没有这个问题了。
 

比如启动gmond服务,提示成功。但ps下却没有gmond的进程。于是研究了下这个gmond.init文件。
   
service gmond stop  倒是没有什么问题,手动执行gmond命令执行也没有问题,关键在于start参数,所以解决问题的代码,就主要是下面几行了:

  1. #!/bin/sh
  2. #
  3. # chkconfig: 2345 70 40
  4. # description: gmond startup script
  5. #
  6. GMOND=/usr/sbin/gmond

  7. # TMPDIR set to SysV IPC ramdrive to avoid include processing failures
  8. TMPDIR=/dev/shm
  9. export TMPDIR

  10. . /etc/rc.d/init.d/functions

  11. RETVAL=0

  12. case "$1" in
  13.    start)
  14.       echo -n "Starting GANGLIA gmond: "
  15.       [ -f $GMOND ] || exit 1

  16.       daemon $GMOND
  17.       RETVAL=$?
  18.       echo
  19.       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond
  20.         ;

由于python是自己编译的,所以我想问题很大可能是出现在环境变量。于是加了两行代码,加完后如下:

  1. #!/bin/sh
  2. #
  3. # chkconfig: 2345 70 40
  4. # description: gmond startup script
  5. #
  6. GMOND=/usr/sbin/gmond

  7. # TMPDIR set to SysV IPC ramdrive to avoid include processing failures
  8. TMPDIR=/dev/shm
  9. export TMPDIR

  10. TPATH=$PATH
  11. . /etc/rc.d/init.d/functions
  12. PATH=$TPATH

  13. RETVAL=0

  14. case "$1" in
  15.    start)
  16.       echo -n "Starting GANGLIA gmond: "
  17.       [ -f $GMOND ] || exit 1

  18.       daemon $GMOND
  19.       RETVAL=$?
  20.       echo
  21.       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond
  22.         ;
改完后的代码使用/etc/init.d/gmond执行没有任何问题,所以能够很肯定是环境变量PATH的问题了。前文说过我的python是自己编译的,为了不影响yum的时候,我软连接到了/usr/local/bin/python,而使用service gmond start去执行的时候PATH变量是service脚本定义的,而并非如何当前shell用户自己定义的,所以我又改动了代码如下就没问题了:

  1. #!/bin/sh
  2. #
  3. # chkconfig: 2345 70 40
  4. # description: gmond startup script
  5. #
  6. GMOND=/usr/sbin/gmond

  7. # TMPDIR set to SysV IPC ramdrive to avoid include processing failures
  8. TMPDIR=/dev/shm
  9. export TMPDIR

  10. . /etc/rc.d/init.d/functions
  11. PATH=/usr/local/bin:$PATH

  12. RETVAL=0

  13. case "$1" in
  14.    start)
  15.       echo -n "Starting GANGLIA gmond: "
  16.       [ -f $GMOND ] || exit 1

  17.       daemon $GMOND
  18.       RETVAL=$?
  19.       echo
  20.       [ $RETVAL -eq 0 ] && touch /var/lock/subsys/gmond
  21.         ;



阅读(5873) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

脸谱sd2014-05-31 09:35:29

不错

jinjin20132013-12-23 16:42:48

想了解投资理财?找福盈资本!你不投资福盈,财不理你!