加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

bash – 启动后将pid映射到qdbus服务号码

发布时间:2020-12-15 22:32:16 所属栏目:安全 来源:网络整理
导读:我正在尝试编写一个bash脚本,它将启动一个程序(konsole)并向其发送dbus消息.这是我的实验 konsole echo pid is $!ps aux | grep konsoleqdbus | grep konsole 这输出 pid is 2726me 2726 0.0 0.4 45404 9952 pts/0 S+ 14:59 0:00 konsole org.kde.konsole-27
我正在尝试编写一个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-2729

qdbus服务名称始终是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`

但肯定有更好的方法!

解决方法

尝试使用qdbus org.kde.konsole / Konsole newSession通过D-Bus API启动新的Konsole实例.它将返回会话ID,以后可以通过调用org.kde.konsole服务的/ Session / $SID对象来控制它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读