我正在尝试写一个bash脚本,它将启动一个程序(konsole)并向它发送dbus消息。这是我的实验
konsole &
echo pid is $!
ps aux | grep konsole
qdbus | grep konsole这输出
pid is 2726
me 2726 0.0 0.4 45404 9952 pts/0 S+ 14:59 0:00 konsole
org.kde.konsole-2729qdbus服务名称始终是org.kde.konsole-{pid+epsilon},但epsilon部分不可预测。
在bash脚本中,如何获得我刚刚生成的特定konsole实例的确切qdbus服务名称?
这里有一个讨厌的,讨厌的解决方案
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`但肯定有更好的办法!
发布于 2012-04-01 05:59:29
尝试使用qdbus org.kde.konsole /Konsole newSession通过D总线API启动新的Konsole实例。它将返回会话ID,以后可以通过调用org.kde.konsole服务的org.kde.konsole对象来控制它。
发布于 2020-04-04 13:35:37
您可以检查qdbus的PPID,以查看相关的konsole。
https://stackoverflow.com/questions/9909212
复制相似问题