无法从基于 Web 的 PHP 脚本执行 KDE Dolphin - 但适用于所有其他 X 程序

无法从基于 Web 的 PHP 脚本执行 KDE Dolphin - 但适用于所有其他 X 程序

在 nginx/php-fpm 下运行的 PHP 脚本中,我可以使用以下 PHP 代码执行任何 X 程序:

shell_exec("DISPLAY=:0 /usr/bin/nohup '{$command}' > /dev/null 2>&1 &");

这将在我的桌面上打开 X 程序,PHP 脚本将继续并完成。即使 PHP 脚本完成后,X 程序仍将保持打开状态。

它适用于我尝试过的每个 X 程序(包括:mpv、kate、konsole、k3b 等),但不适用于 Dolphin。当尝试以这种方式运行 Dolphin 时,它甚至根本不会出现,并且屏幕上或我能找到的任何日志中都不会出现错误。

Dolphin 的执行方式是否存在与此相关的不同之处?与套接字/用户/后台进程或类似的东西有关?

我已经检查了以下内容:

  • 尝试仅使用二进制名称(dolphin)和完整路径(/usr/bin/dolphin) - 无论如何,所有其他程序都可以使用这两者,所以似乎不是 $PATH 问题
  • DISPLAY=:0 /usr/bin/nohup '{$command}' > /dev/null 2>&1 &在 Konsole shell 中执行相同的命令适用于所有内容,包括 Dolphin
  • PHP 错误日志中没有任何内容,并且我已启用所有错误级别
  • 我在其他 Dolphin 窗口打开时和它们全部关闭时都尝试过(并确认没有 Dolphin 进程仍在运行)
  • Xorg 日志中也没有任何内容

或者也许有一些类似但不同的 PHP 代码适用于 Dolphin?

相关内容