両方のプログラムにはdバスサービスが必要です。両方のプログラムを同時に実行するにはどうすればよいですか?

両方のプログラムにはdバスサービスが必要です。両方のプログラムを同時に実行するにはどうすればよいですか?

私は次の設定を持っています:

  • スクリーンセーバーとして使用しましたxscreensaver(きれい)
  • 画面をロックするために使用しましたlight-locker(より安全なのでxscreensaver)。

最近dbusxscreensaverにバインドし始めましたorg.freedesktop.ScreenSaver。したがって、他の人が文句を言った後に起動したため、これ以上並行して実行することはできませんa screensaver is already running

私は読んだArchWikiからサービスには特定の可能性がありますoverride。しかし、漠然としたdバスに慣れていません。

ソースコードを変更せずに2つを共存させる方法はありますか?

記録によると、DBUS_SESSION_BUS_ADDRESSエーテルスクリーンセーバーを起動する前に環境変数を設定解除しても効果はありません。

編集:私の研究では、プログラムに問題を引き起こすことなくプログラムがdバスサービスを聞くのを防ぐことは不可能に見えます。誰かが私にこれを確認することができれば、それは良い答えになるでしょう。

答え1

回答中の不快な部分は次のとおりです。努力する再び並行して実行すると、損傷が発生する可能性が高くなります。 Dバスはバスのように動作するため、特定の規則に従ってメッセージを送信する人と受信者がいます。スクリーンセーバーの場合、最も可能性の高いルールはスクリーンセーバーがシステムの1つにすぎず、他のソフトウェアはD-バスを使用してスクリーンセーバーやその他の標準機能呼び出しを防止するかどうかを通知することです。

つまり、カウボーイを試して試行錯誤でいくつかのD-Busの基本を学びたい場合は、/usr/share/dbus-1/services/ディレクトリにD-Busサービス名と正確に名前が付けられます.service。あなたはどこ可能org.freedesktop.ScreenSaver.service文書も見つけることができます。

編集によってシステムが損傷する可能性があることに備えて、システムが破損した場合に修復する方法を知ってください。しかし、ここで龍があります。、あなたはこれを行うときにリスクを負う必要があり、作業システムが中断される可能性があります。

関連情報