gpt4 book ai didi

bash - 启动后将 pid 映射到 qdbus 服务编号

转载 作者:行者123 更新时间:2023-11-29 09:06:31 25 4
gpt4 key购买 nike

我正在尝试编写一个 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 服务名称?


这是一个讨厌的、hacky 的解决方案

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 实例。它将返回 session ID,稍后可以通过调用 org.kde.konsole 服务的 /Session/$SID 对象来控制它。

关于bash - 启动后将 pid 映射到 qdbus 服务编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9909212/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com