ユーザーがログインする前に、起動時に小さなプログラムを実行しようとすると、奇妙な問題が発生します。
起動時にプログラムを実行するさまざまな方法を使用しましたが、まだ何も役に立ちません! とにかく、DBUS(システムバス)を介して別のプログラムと通信する小さなQtプログラムがあります。現在、プログラムはupstartで起動され、サービスなどをシステムバスに登録しています。「qdbus --system」を使用してプログラムのさまざまなメソッドを呼び出すこともできます。これらのメソッドは、正しい戻り値ですぐに戻ります。毎秒 DBUS シグナルを送信するように Qt プログラムを設定しました。これを dbus-monitor で監視すると、2〜5秒ごとにシグナルが渡されるだけですが、プログラムを強制終了してユーザー(ルート)としてログインすると、プログラムはシグナルを正常に送信します(毎秒)。
これはどのように可能ですか?コンピューターの起動時にシグナルを送信するプログラムを実行し、シグナルを受信したときにアクションを実行するシグナルに別のユーザー アプリケーションを接続する必要があります。
init.d の方法と通常の rc.local の方法を使用して、プログラムを新興ジョブとして実行しようとしましたが、すべて同じ結果になりました。
これを機能させるには、ユーザーがログインしている必要がありますか?
ありがとう、
シスコ