簡體   English   中英

PHP shell_exec將無法與gnome一起使用

[英]PHP shell_exec won't work with gnome

在終端窗口中,運行alert 9給我一個彈出窗口,說9

但是,在shell_exec運行alert 9不會產生任何結果。


我應該注意些什么?

只需提及:其他命令都無法與GUI交互。 我正在使用gnome 3.16.3


更新

我的具體目標是使用gnome環境運行xdotool命令。 xdotool key ctrl+shift+u

alert不是標准命令,至少在RedHatSolarisAIX上不是這樣,因此您必須在問題中提及它是專有命令/程序

您的alert腳本/程序不考慮刷新標准或文件輸出中的文本數據,因此您不能使用pipe |重定向 ,或redirect > ,最后,PHP函數shell_exec()可以捕獲任何內容

也許您可以重定向圖形數據(我不確定),但是通常,圖形服務器會使用它

alert不是命令,而是notify-send的別名。 別名僅在交互式外殼程序中加載,因此測試shel_exec並不是最佳選擇。

這兩個命令與php-cli一起工作良好:

$ php -r "shell_exec('notify-send 9');"
$ php -r "shell_exec('xdotool key ctrl+shift+u');"

第一個彈出通知區域中的9,最后一個輸出下划線為'u'。

帶有mod_php的Apache是​​守護進程,它是init子進程,它對xserver一無所知。 例如,如果您從xserver 的終端運行php內置Web服務器,例如$ php -S 0:8080則它將按預期工作。

我相信PHP會啟動一個不了解您的X11環境的shell,您需要設置$DISPLAY環境變量。 嘗試對shell_exec進行以下修改:

shell_exec("DISPLAY=\":0\" alert 9");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM