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)とフルパス(/usr/bin/dolphin)のみを試してください。他のすべてのプログラムはとにかく両方使用できるため、$ PATHの問題ではないようです。
DISPLAY=:0 /usr/bin/nohup '{$command}' > /dev/null 2>&1 &
Konsoleシェルで同じコマンドを実行すると、Dolphinを含むすべてのものに機能します。- PHPエラーログには何もなく、すべてのエラーレベルが有効になっています。
- 私は別のドルフィンウィンドウを開き、すべて閉じた状態でこれを試しました。 (そしてDolphinプロセスがまだ実行されていないことを確認しました。)
- Xorgログには何もありません
それとも、Dolphinで動作するようなものですが、他のPHPコードがありますか?