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