問題タブ [dbus]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - D-Bus GLib バインディング — コードをすぐに取得できない
私は GLib の D-Bus バインディングをいじり、何か (何でも) を機能させようとしましたが、成功は非常に限られていました。私は、 Ross Burton のサンプル コードをコンパイルして実行しようとしてきましたが、新しいエキサイティングな問題に直面し続けています。
このコードのデバッグを手伝ってもらえますか、または失敗した場合は、動作する D-Bus GLib コードの例を教えてもらえますか?
ロスのコードは古くなっているので、行を置き換えました
と
その記事に対する彼のコメントによると、私のボックスのセットアップと一致するようにインクルードディレクトリを更新する以外に変更はありません。
ただし、サーバー実行可能ファイルを実行すると、次のエラーが発生します。
gdb によると、この時点でのスタック トレースは次のとおりです。
何が問題なのか、またはデバッグの次のステップがどうあるべきかわかりません。D-Bus メソッド呼び出しメッセージを送受信する基本的なコードを取得したいので、アプリケーションで使用するためにどのように動作するかを確認できます。
D-Bus 0.73 を使用しています。
更新: 私の側での成功の欠如と、ここでの応答の欠如を考えると、現在、D-Bus を放棄し、他の IPC メカニズムを見つけることを検討しています。
更新 2 : 最終的に、Unix の名前付きソケット アプローチを使用しました。これは、合計 280 行のコード (およびテスト コード) で必要なことを正確に実行します。
gnome - Gnome 2.30での自動マウントのワークフローは何ですか?
私はFedora13を搭載したASUSラップトップを持っています。私の問題は、接続するUSBストレージが自動マウントされないことです。問題のないFedora13を搭載した他のコンピューターがあります。
自分のラップトップと動作する他のコンピューターの構成に違いは見当たりません。
そこで、問題を突き止めるために、それがどのように機能するかについてのドキュメントを探し始めました。私はudev、devkit、hal、dbus、polkit、gnomeなどを見てきました。
USBスティックを接続してから、ウィンドウが開いてGNOMEで実行されるまでに発生するイベントを追跡するために使用できるイベント、ログ、構成ファイル、およびモニタープログラムを知りたいです。
これまでのところ、udevがディスクを検出し、/ dev / sdb(およびパーティション1の場合は/ dev / sdb1)を作成し、追加されたデバイスに関するイベントがdbusにメッセージとして送信されることを追跡しました。udisksを使用してディスクを手動でマウントすることはできますが、gnome-disk-utility(palmiset)を使用してマウントすることはできません。
ディスクの自動マウントにはさまざまなアプリケーションが関係しています。一連のイベントのどこで失敗するのかを調べたいと思います。
python - dbusを使用してHALに接続する方法
私はpythonとdbusを使用しています。私が本当に必要としているのは、マイクからPythonプログラムに入力を取得し、プログラムから再生する方法です。私はたくさんグーグルで検索しましたが、pyaudioがうまくいくようですが、pyaudioは私のubuntu10.04では動作しません。
私が見た次の選択肢はテレパシーでした。しかし、私もそれほど大きなものは必要ありません。テレパシーがdbusでどのように機能するかを見て、私はこれが進むべき道かもしれないと思いました。
残念ながら、Harware Abstraction LAyerに接続できず、マイクからの入力を取得するために使用しています。これを行う方法はありますか、それとも他の場所で探す必要がありますか?
linux - コマンドラインから dbus 信号を発信する方法
dbus-send などを使用してコマンドラインから dbus 信号を送信する方法はありますか?
linux - dbus-send による Linux のシャットダウン
Linux ボックスをリモートでシャットダウンする Java アプリを作成しています。
デスクトップ アプリは待機し、コマンドが送信されるのを待ちます。「shutdown -h」を使用してみましたが、これには sudo 権限が必要であり、オプションではありません。次に、次の dbus-send ソリューションを使用して、sudo なしでシャットダウンする方法を見つけました。
これは正常に動作しますが、dbus-send を使用して、1 時間でコンピューターをシャットダウンする「shutdown 3600」と同様の時限シャットダウンを実行できるかどうかを調べようとしています。
乾杯
イーフ
x11 - X11アプリをDbusに接続する方法
X11アプリケーションでDBusシグナルをリッスンする方法。Dbusシグナルをリッスンするためにgmainloopを起動する必要があり、X11アプリの場合はXEventループを起動する必要があります。それで、これを行うためのエレガントな方法はありますか?または、別のスレッドでgmainloopを実行する必要がありますか?
よろしく、リーヴォン
python - Python Dbus : Interface プロパティをエクスポートする方法
すべての python dbus ドキュメントには、オブジェクト、インターフェイス、シグナルをエクスポートする方法に関する情報がありますが、インターフェイス プロパティをエクスポートする方法はありません。
それを行う方法はありますか?
c - C DBus : 文字列を返すメソッドを呼び出すと失敗する
以下のコードが実行時にクラッシュする理由を教えてください (コンパイルは問題ありません)。90 回転した X 環境で左に回転します。
python - Pythonの複数のd-busセッションバスオブジェクト
次のように、リモートコンピューター上のd-busセッションバスに接続するスクリプトを作成しました。
これは問題なく機能しますが、異なるコンピューター上の複数のセッションバスに接続できる必要がある場合を除きます。私は次のことを試しました:
しかし、それは機能しません。SessionBusへの2回目の呼び出しは、最初の呼び出しと同じオブジェクトを返します。すなわち。この場合、両方のオブジェクトは192.168.0.1のセッションバスを参照します。SessionBusへの最初の呼び出しだけが実際に何かを実行し、その後のすべての呼び出しは最初の呼び出しで作成されたオブジェクトを返すだけのようです。誰かがこれを回避する方法を知っていますか?
php - 他のユーザーからリズムボックス情報を取得する
デスクトップでRhythmboxを実行していますが、Webインターフェイスを介してリモートからRhythmboxを制御できるようにしたいと考えています。アクセスに問題がrhythmbox-client
ありますが、アクセスしようとしているユーザー(www-data)がa)Xセッションを実行しておらず、b)私のリズムボックスdbusにアクセスできないと不平を言っているためです。情報。
(rhythmbox-client:13954): Rhythmbox-WARNING **: /bin/dbus-launch terminated abnormally with the following error: Autolaunch error: X11 initialization failed.
私はubuntu10.04でapache、phpを実行しています。次のメソッドも、別のユーザーからphp cliを介してphpスクリプトを呼び出すことによって試行されました(別のユーザーと一緒に自分のボックスに移動します)
私はこれらのアプローチを試しました:
- 「rhythmbox-client--print-playing--no-start --no-resent」を使用して、phpスクリプトからsystem()とexec()を呼び出します。
- phpおよびpythonスクリプトで直接DBusを使用する(system()/ exec()を使用してphpスクリプトからDBusを呼び出す)
- Cプログラムで、、を使用し
setuid()
、php経由で呼び出します。setruid()
seteuid()
私は今途方に暮れています。これも可能ですか?
[編集]@IvanGoneKrazyの提案を使用し、この同様の質問から環境コードを取得しました。今、私はこのエラーメッセージでこのコードを持っています:
エラーメッセージ: