![웹 기반 PHP 스크립트에서 KDE Dolphin을 실행할 수 없지만 다른 모든 X 프로그램에서는 작동합니다.](https://linux55.com/image/9832/%EC%9B%B9%20%EA%B8%B0%EB%B0%98%20PHP%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EC%97%90%EC%84%9C%20KDE%20Dolphin%EC%9D%84%20%EC%8B%A4%ED%96%89%ED%95%A0%20%EC%88%98%20%EC%97%86%EC%A7%80%EB%A7%8C%20%EB%8B%A4%EB%A5%B8%20%EB%AA%A8%EB%93%A0%20X%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EC%97%90%EC%84%9C%EB%8A%94%20%EC%9E%91%EB%8F%99%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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 쉘에서 동일한 명령을 실행하면 Dolphin을 포함한 모든 것에 작동합니다.- PHP 오류 로그에 아무것도 없으며 모든 오류 수준이 활성화되어 있습니다.
- 나는 다른 Dolphin 창을 열고 모두 닫은 상태에서 이것을 시도했습니다. (그리고 Dolphin 프로세스가 아직 실행되고 있지 않음을 확인했습니다.)
- Xorg 로그에도 아무것도 없습니다
아니면 Dolphin에서 작동하는 비슷하지만 다른 PHP 코드가 있을까요?