郁闷开机启动自定义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后才能正常?
------解决方案--------------------
在你脚本执行之前,硬件都初始化好了?