繁体   English   中英

从 php 脚本打开 gnome-terminal

[英]Open gnome-terminal from php script

我想尝试从 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...

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM