libpurpleはbashから動作しません
質問
いくつかのプロセスから徹底的なDBUへのアクセスを使用しています。問題は、別のユーザーから実行され、DBUのセッションが異なることです。したがって、セッションが異なる場合、別のプロセスでDBUを使用するアプリケーションをACCesできません。このトラブルを解決する方法を見つけました。一部のスクリプトは、メインユーザーからのファイルDBUSセッションデータに書き込みます(システムの読み込みで設定します)。これがそのスクリプトです:
#!/bin/bash
touch /.Xdbus
chmod 666 /.Xdbus
env | grep DBUS_SESSION_BUS_ADDRESS > /.Xdbus
echo 'export DBUS_SESSION_BUS_ADDRESS' >> /.Xdbus
このファイルの例は次のとおりです。
DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-9yStbCgjwb,guid=0deadb6519676638e1e93f5000000023
export DBUS_SESSION_BUS_ADDRESS
今、私はそのファイルからデータを実行する必要があり、両方のDBUSセッションは同じになります。ここにいくつかのトラブルがあります:
#!/bin/bash
if [ -f /.Xdbus ]
then
source /.Xdbus; /usr/bin/purple-remote "setstatus?status=away&message=At lunch"
else
echo "File doesnt exist"
fi
ご覧のとおり、PidginをDBUSアプリケーションとして使用しています。しかし、紫色のアプリケーションがないため、DBUSセッションが異なるというエラーがスローされます!だからコマンド:
source /.Xdbus
うまくいきませんでした。なんで?
upd
source /.Xdbus; echo $DBUS_SESSION_BUS_ADDRESS; /usr/bin/purple-remote "setstatus?status=away&message=At lunch"; echo $DBUS_SESSION_BUS_ADDRESS;
→
unix:abstract=/tmp/dbus-9yStbCgjwb,guid=0deadb6519676638e1e93f5000000023 No existing libpurple instance detected. unix:abstract=/tmp/dbus-9yStbCgjwb,guid=0deadb6519676638e1e93f5000000023
解決
更新に基づいて、 source
コマンドが機能しています。したがって、問題はにあります purple-remote
また libpurple
または、BASHスクリプトではなく依存関係。
ルートディレクトリにそのようなファイルを作成することは良い考えではありません。ファイルに適した場所を選択してみてください。おそらく次のいずれか:
/home/username/.Xdbus
/var/local/.Xdbus
- このディレクトリを所有しているグループにユーザーを追加する必要があるかもしれません/tmp/.Xdbus
他のヒント
ファイルシステムのルートを使用しているからだと思います。あなたが望むのは、デニスと言ったように、./または絶対的な道です。
$ pwd/fileまたは$ {pwd}/fileを使用することもできます
所属していません StackOverflow