Em um script PHP executado sob nginx / php-fpm, posso executar qualquer programa X usando este código PHP:
shell_exec("DISPLAY=:0 /usr/bin/nohup '{$command}' > /dev/null 2>&1 &");
Isso abrirá o programa X na minha área de trabalho, e o script PHP continuará e terminará. O programa X permanecerá aberto, mesmo após o script PHP terminar.
Funciona para todos os programas X que eu tentei (incluindo: mpv, kate, konsole, k3b e mais) - mas não o Dolphin. Ao tentar executar o Dolphin desta forma, ele nunca aparece, e nenhum erro aparece na tela ou em qualquer log que eu possa encontrar.
Existe algo diferente sobre como o Dolphin é executado que poderia ser relevante aqui? Algo a ver com sockets / users / processos em segundo plano ou algo parecido?
Já verifiquei o seguinte:
DISPLAY=:0 /usr/bin/nohup '{$command}' > /dev/null 2>&1 &
em um shell do Konsole funciona para tudo, incluindo o Dolphin Como alternativa, talvez haja algum código PHP semelhante, mas diferente, que funcione para o Dolphin?