从php脚本打开gnome-terminal

时间:2015-12-07 20:52:09

标签: php bash shell-exec

我想尝试从php脚本打开gnome-terminal:

shell_exec('bash /data/manager/application/.shell/system.sh');

此脚本使用函数来检查终端:

SCRIPTCURRENT=`readlink -m $0`
SCRIPTCURRENTPATH=$(dirname "$SCRIPTCURRENT")

runintoterminal () {
    if ! [ -t 1 ]; then
        gnome-terminal -e "bash $1"
        exit 0
    fi
}
runintoterminal $SCRIPTCURRENT

我试过了:

shell_exec('gnome-terminal');

但是它不起作用......(我知道它可能......)但是怎么样?

我使用nginx和php-fpm。用我自己的插座。 nginx和socket使用我的用户而不是www-data。 (我在ubuntu 14.04LTS上)

我尝试了0777权利......

我的bash脚本可以从netbeans IDE ans终端运行......但不能从php ...

运行

1 个答案:

答案 0 :(得分:0)

  

问题很可能是gnome-terminal不知道应该在哪里绘制自己。通常它显示在与启动它的程序相同的显示器上(IDE,终端),但是Web服务器没有显示器,所以它不知道去哪里。您可以尝试使用DISPLAY =:0 gnome-terminal -e“bash $ 1”在当前的第一个本地图形登录会话中显示它,如果它具有该权限。   的 that other guy

shell_exec('DISPLAY=:0 bash /data/manager/application/.shell/system.sh');

或者在功能上:

SCRIPTCURRENT=`readlink -m $0`
SCRIPTCURRENTPATH=$(dirname "$SCRIPTCURRENT")

runintoterminal () {
    if ! [ -t 1 ]; then
        DISPLAY=:0 gnome-terminal -e "bash $1"
        exit 0
    fi
}
runintoterminal $SCRIPTCURRENT