我正试图在一台无头服务器上运行firefox来截取网站的屏幕。我可以在终端上使用以下命令很好地执行此操作
"DISPLAY=:12 firefox -saveimage http://www.google.com/“。
问题是当我尝试做系统(“DISPLAY=:12 firefox -saveimage http://www.google.com");不工作。我有一种感觉,它不是在正常的shell环境中执行的。我违背了我更好的判断,给了apache用户一个实际的shell。如果我通过su切换到apache并执行该命令,则一切正常,并按预期工作,但同样不能从系统调用中工作。任何见解都是非常受欢迎的。
发布于 2009-03-16 21:10:03
我找到了解决方案。
我只需要创建一个shell脚本来为我调用它。在使用了一段时间后,我在脚本的顶部添加了export HOME="/var/www/",使其正常工作。
我希望这对其他人有帮助。
发布于 2009-03-16 18:36:17
最有可能的情况是,您设置为shell用户的环境变量存在某种依赖关系,而httpd的环境无法满足这些依赖关系。不过,在对环境做任何壮举之前,我建议从您的工作中捕获stderr (例如,通过将2>/tmp/imgcaperrlog添加到它的末尾),并查看它是否有任何抱怨。
https://stackoverflow.com/questions/651628
复制相似问题