从php脚本打开gnome-terminal

问题描述 投票:0回答:2

我想尝试从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和套接字使用我的用户,而不使用www-data。 (我使用的是Ubuntu 14.04LTS)

我已经尝试使用0777权限...

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

php bash shell-exec
2个回答
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

0
投票

Si quelqu'un passe parlà,la solution est ici!

https://www.php.net/manual/fr/features.commandline.webserver.php

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.