我有一个cgi脚本正在运行,但我遇到了不等待命令输出的cgi脚本的问题。cgi bash脚本不等待命令的所有输出
下面是CGI脚本:
#!/bin/bash
echo Content-type: text/plain
echo ""
case "$QUERY_STRING" in
start)
service servicename start
;;
stop)
service servicename stop
;;
restart)
service servicename restart
;;
backup)
service servicename backup
;;
checkisup)
service servicenamet checkisup
;;
status)
service servicename status
;;
*)
echo "Usage: $0 {checkisup|start|stop|restart|backup|status|restart}"
exit 1
;;
esac
exit 0
当我打电话与script.cgi?status
状态是执行状态的功能,形成我的服务
if pgrep -u $USERNAME -f $SERVICE > /dev/null
then
pre_log_len=`wc -l "$PATH/server.log" | awk '{print $1}'`
echo "$SERVICE is running... executing command"
as_user "screen -p 0 -S screenname -X eval 'stuff \"$command\"\015'"
sleep .1
tail -n $[`wc -l "$PATH/server.log" | awk '{print $1}'`-$pre_log_len] "$PATH/server.log"
fi
的部分我有问题当函数到达sleep .1
时,cgi脚本将继续而不等待高的输出。
任何想法?
'睡眠.1',工作系统也许不错,但不能帮助调试这种情况。尝试“睡10”,看看是否改变了事情。祝你好运! – shellter