デスクトップ環境にとらわれない方法で使用可能なpolkitエージェントがあるかどうかを確認する必要があります。
現在、私が行っているのは、次のようなコードを使用して、polkitエージェントが実行されているかどうかを確認することです。
ps aux | grep some-polkit-agent
どこ some-polkit-agent
多分:
polkit-gnome-authentication-agent-1
(gnome2およびgnome3-フォールバックの場合)polkit-kde-authentication-agent-1
(kdeの場合)polkit-mate-authentication-agent-1
(配偶者用)lxpolkit
(lxdeの場合)「フォールバックなし」のgnome3(gnome-Shell)には、gnome-Shellプロセス自体の中に独自のpolkitエージェントがあるため、ps-grepを実行できません。私が想定しているのは、gnome-Shell
が実行されている場合、polkitエージェントが配置されています。
この問題は、システムでhidepid
が有効になっている場合に発生します( http://www.linux-dev.org/2012/09/hide-process-information-for-other-users/を参照 =)。このセキュリティ対策により、ps
は、たとえ存在していても、実行中のpolkitエージェントを表示しません。
使用可能なpolkitエージェントをチェックするためのより良い方法はありますか?
エージェントは、dbusを介して自分自身をpolkit機関に登録します。彼らのdbusトラフィックを傍受できれば、どのエージェントが登録されているかを正確に知ることができます。