日期:2014-05-16  浏览次数:20868 次

郁闷开机启动自定义service,调用os.system没有反应,手动restart后又正常了?
我用python写了service程序,只要是接收到snmptrap后,调用os.system("/usr/local/sendsms.sh ss 1397")方法,执行一个shell脚本。该脚本是调用一个客户端发短信。

但是每次重新开机后,我发送snmptrap都没有效果。从日志记录来看,os.system()确实已经调用了/usr/local/sendsms.sh ss 1397......脚本,说明程序执行本身没有问题。而/usr/local/sendsms.sh脚本内容也很简单,就是echo "ssss" | gnokii --sendsms 1397... 这条命令。


启动后,当我手动在终端执行service xxxx restart 以后,一切都正常了,发snmptrap 正常调用/usr/local/sendsms.sh ss 1397...... 我也能收到短信。

这是 service的启动脚本

PHP code

#!/bin/sh


# chkconfig: 35 99 35 
# description: WiBMS-SMS 

RETVAL=0
WiBMS_SMS_SHELL=/usr/local/wibms-sms/wibms-sms.sh

case "$1" in
  start)
    $WiBMS_SMS_SHELL start
    RETVAL=$?
    ;;
  stop)
    $WiBMS_SMS_SHELL stop
    RETVAL=$?
    ;;
  restart)
    $WiBMS_SMS_SHELL restart
    RETVAL=$?
    ;;
  *)
    echo $"Usage: wibms-sms  {start|stop|restart}"
    exit 1
esac

exit $RETVAL



这是发送短信的脚本

PHP code

#!/bin/sh

if [ "$#" = "2" ]; then
    echo "$1" | gnokii --sendsms $2 > /dev/null
else
    echo "EX:sendsms.sh content phone"
fi



郁闷了阿,到底怎么回事?为什么每次都要手动restart后才能正常?


------解决方案--------------------
在你脚本执行之前,硬件都初始化好了?