başlatılması sonra servis numaralarını qdbus için. İşte benim deneydirharitalama pid ben bir program (konsole) başlatmak ve buna dbus mesajlar gönderir bir bash senaryo yazmaya çalışıyorum
konsole &
echo pid is $!
ps aux | grep konsole
qdbus | grep konsole
Bu qdbus hizmet adı daima org.kde.konsole-{pid+epsilon}
ama epsilon kısmı tahmin edilemez
pid is 2726
me 2726 0.0 0.4 45404 9952 pts/0 S+ 14:59 0:00 konsole
org.kde.konsole-2729
çıkarır. Benim bash komut dosyasında
, nasıl ben sadece olurken özellikle konsol örneği için tam qdbus hizmet adı alabilirim?
Burada kötü, hacky çözüm
qdbus | grep konsole | sed 's/[^0-9]//g' > /tmp/before
konsole &
sleep 1
qdbus | grep konsole | sed 's/[^0-9]//g' > /tmp/after
N=`sort /tmp/before /tmp/after | uniq -u`
ama mutlaka daha iyi bir yolu yoktur!
'Hizmeti 'org.kde.konsole' exist.' gelmez ama konsole elle başlatmak o zaman (veya benzeri)' org.kde.konsole.12345' hizmet var. 'qdbus | En az bir konsolu çalıştırmadıkça grep konsole 'hiçbir sonuç vermiyor. – spraff