デフォルトでは、私はSSHセッションを介してリモートでこのスクリプトを実行しています。 Linux Mintではうまく動作しますが、Debian(7.5)では動作しません。エクスポート表示やnohupコマンドが機能しないようですが、どのようにテストしてみるのかわかりません。誰でもこれの問題を見ることができますか?
#!/usr/bin/env bash
mount -t cifs //10.50.18.114/Presentation -o 'username=Administrator,password=***,sec=ntlm' /mnt/share
pkill soffice.bin
cp -v /mnt/share/Pres.ppt /home/kyle/Documents
chmod 777 /home/kyle/Documents/Pres.ppt
export DISPLAY=":0"
nohup libreoffice --norestore --nolockcheck --show /home/kyle/Documents/Pres.ppt &
sessionid="$(pidof -s sshd)"
kill $sessionid
exit
編集:これは提供された「冗長」リンクに表示されている質問とは異なります。そのスレッドの情報を使用しましたが、うまくいきませんでした。
コメントへの回答:2台の別々のコンピュータがあります。上記のスクリプトはデモPCにローカルに保存されます。 SSH経由でリモートでこのスクリプトを実行しています。各ステップの間にechoコマンドを配置しましたが、最後まで実行されているようですが(実際にはkill sessionidをコメントアウトしました)、プレゼンテーションは私のPCには表示されません。 rootとしてローカルで実行するとスクリプトが機能します(mountコマンドを使用するにはrootが必要です)。
私が見る唯一のエラーは次のとおりです。
(soffice:3747): GConf - 警告**: クライアントは D-BUS デーモンに接続できません。応答を受信できませんでした。考えられる理由は次のとおりです。リモートアプリケーションが応答を送信していない、メッセージバスセキュリティポリシーが応答をブロックしている、応答がタイムアウトしている、またはネットワーク接続が中断されました。 GConfエラー:D-BUSデーモンが実行されていません。
ただし、ローカルで実行してもSSHで実行しても、このエラーが発生するため、これは問題ではないと思います。私はまだこれがEXPORTとnohupコマンドの問題だと思いますが、この問題を効果的に解決する方法がわかりません。
編集2:「kyle」アカウントを使用してSSHを使用すると実際には機能しますが、rootを使用してSSH経由で接続すると「kyle」のローカルディスプレイに接続できないようです。これは別のユーザー名だからです。私は解決策を見つけようとします。
ベストアンサー1
グラフィカルセッションでリモートでプログラムを起動するには、以下の設定が必要です。展示する環境変数少なくとも設定する必要があります。特権そしてDBUS_SESSION_BUS_ADDRESS。最もよく設定された他の変数はXDG_ *変数です。XDG_RUNTIME_DIR、XDG_SEATなど。
次のコマンドを実行して、その値を確認できます。
PID_OF_SOME_GUI_PROGRAM=`pidof soffice.bin` # before you pkill it
strings /proc/${PID_OF_SOME_GUI_PROGRAM}/environ | grep XAUTHORITY
XFCEを使用している場合は、次のこともできます。
PID_OF_SOME_GUI_PROGRAM=`pidof xfce4-session`
(GNOMEの場合はおそらくそうですgnome-session
)