我正在使用以下方法检查shell脚本:
#!/bin/bash
echo "Content-Type: text/plain"
echo
echo "Time is:"
date
/usr/bin/firefox http://www.google.fr &
如果我在终端中运行脚本,我会得到日期,我可以打开firefox浏览器。 但是如果我使用浏览器(localhost / cgi-bin / scriptest)运行脚本,我会得到日期
Time is:
Mon Sep 9 14:18:47 CEST 2013
但是firefox浏览器没有打开。 如果我使用终端而不是浏览器运行脚本,有谁知道为什么firefox浏览器会出现?任何解决方案?
答案 0 :(得分:2)
确保您在同一用户和同一X会话下的终端上运行脚本。应设置DISPLAY变量。添加此行以了解更多信息:
...
echo "DISPLAY: \"$DISPLAY\", whoami: $(whoami)"
/usr/bin/firefox http://www.google.fr ## No need to add &.
您的用户应与X会话中的用户相同。
如果DISPLAY没有值,请尝试将:0.0
设置为快速黑客:
...
export DISPLAY=':0.0'
/usr/bin/firefox http://www.google.fr
如果仍然无效,请尝试引用DISPLAY
之类的here一些帖子。