我有一个像这样的cgi shell脚本
#!/bin/sh
# show the page
echo Content-type: text/html
echo
echo "<html><b>Hello world!</b></html>"
# the task I want to do in background
sleep 100
echo $(date) >> log
我想在最后一页之后显示页面echo
,而不是在脚本执行结束时。我尝试将代码放入另一个文件中并像这样执行./background.sh &
。它在控制台中有效,但在浏览器中无效。
我用的是lighttpd
关闭标准输出 with exec >&-
在执行长时间运行或后台任务之前。也许您还必须关闭 stderr。那将是
exec >&-
exec 2>&-
(看来你不能在一行中关闭两者)
这将打破管道并允许您的网络服务器发送已经输出的数据(例如通过echo
)到浏览器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)