2013-09-09 3 views
0

Я проверяю сценарий оболочки:Баша скрипта открывающегося браузера Firefox из браузера

#!/bin/bash 

echo "Content-Type: text/plain" 
echo 
echo "Time is:" 
date 
/usr/bin/firefox http://www.google.fr & 

Если я запустить скрипт в терминале я получаю дату и я могу открыть браузер Firefox. Но если я запускаю скрипт, используя браузер (локальный/CGI-BIN/scriptest) я получить дату

Time is: 
Mon Sep 9 14:18:47 CEST 2013 

но браузер Firefox не открыт. Кто-нибудь знает, почему браузер Firefox появляется, если я запускаю сценарий с помощью терминала, а не из браузера? любое решение? thanks

ответ

2

Убедитесь, что вы запускаете свой скрипт на терминале под тем же самым пользователем и тем же X-сеансом. Должна быть установлена ​​переменная DISPLAY. Добавьте эту строку, чтобы узнать больше информации:

... 
echo "DISPLAY: \"$DISPLAY\", whoami: $(whoami)" 
/usr/bin/firefox http://www.google.fr ## No need to add &. 

Ваш пользователь должен быть таким же, как и на вашей X-сессии. Если дисплей не имеет никакого значения, попробуйте установить в :0.0 как быстрый хак:

... 
export DISPLAY=':0.0' 
/usr/bin/firefox http://www.google.fr 

Если он все еще не работает, попробуйте обратить внимание на некоторые темы про DISPLAY как here.

+0

Привет, мой браузер ответ: DISPLAY: "", whoami: www-data. В терминале ответ: DISPLAY: «: 0.0», whoami: angel. Похоже, что проблема связана с www-data .... другим пользователем. Я не вижу никакого решения .... – anraT

+0

@anraT Почему вы должны запускать его как другой пользователь и терминал? – konsolebox

+0

Я хотел бы запустить firefox с использованием того же пользователя, но я не понимаю пользователя www-data ... Я думаю, что это конфигурация Apache? – anraT