使用dbus控制同一应用程序的多个实例?

莫斯米尔

问题

我试图用来dbus从终端控制VLC媒体播放器的多个实例。

dbus对于单个VLC实例使用是没有问题的:在VLC启动后,立即执行诸如播放/暂停,

dbus-send --dest=org.mpris.MediaPlayer2.vlc /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause

按预期工作。但是,如果启动第二个VLC实例,dbus-send则不会注册任何命令。第一个实例仍然可以很好地注册所有命令,但是第二个实例不响应。

我尝试过的

dbus-launch vlc

我尝试使用dbus-launch vlc使用仅dbus-launch创建会话总线实例,并打印其唯一的标识地址。您甚至可以使用查看正在运行的实例ps -aux | grep dbus使用该地址,您可以使用发送命令dbus-send --address=X

但是,使用时dbus-launch vlc,它将不会将有关新总线的信息打印到标准输出(包括其标识地址)。因此,即使我可以使用发送命令给它dbus-send,我也不知道该使用什么地址。没有办法指定新闻会话总线实例应使用哪个地址。

如果我能以某种方式获得由创建的新实例的地址,则dbus-launch该问题(理论上)将得到解决。

dbus守护程序

与相似dbus-launch,您可以dbus-daemon用来创建会话总线实例,但也可以使用--address=X标志来指定其地址使用dbus-send --address=X[...]会给我一个“无法打开连接”错误,即使我要解决这个问题,我也不知道如何将VLC实例连接到该特定会话总线实例。daccess-ods.un.org daccess-ods.un.org 我不知道该如何进行。

奥斯汀·布洛克(AustinBrock)

在寻找我自己问题的答案时找到了您的问题。dbus IRC频道的家伙帮了我忙。

dbus-send --print-reply --dest=org.freedesktop.DBus /org/freedesktop/DBus org.freedesktop.DBus.ListQueuedOwners string:org.mpris.MediaPlayer2.vlc

这将为您提供可以循环访问的目的地。它列出了它们,如:1.25:1.26,因此您的dbus发送看起来像这样(注意冒号是必需的!)...

dbus-send --print-reply --dest=:1.25 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause
dbus-send --print-reply --dest=:1.26 /org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.Pause

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用.NET多线程运行同一应用程序的多个实例

如何在 node.js 中禁止同一应用程序的多个实例?

具有相同组ID Kafka的同一应用程序的多个实例

同一应用程序服务器的多个实例导致2个问题

通过同一应用程序的多个kafka流实例读取规则集主题/分区

具有同一应用程序多个实例的 Amazon SNS 主题

同一应用程序的不同实例的集成测试

同一应用程序上的多个TIdCmdTCPServers

如何让同一应用程序的多个版本使用相同版本的程序集?C#

使用AspNetCoreModuleV2使用同一应用程序池托管多个.net核心

如何在git中同时使用同一应用程序的多个版本?

Django对包含同一应用程序的多个URL使用reverse()

在同一应用程序的两个或多个实例之间切换的快捷键?

Android:初始化时,同一应用程序的两个Aplication类实例

是否可以安装同一应用程序的两个实例?

Spring Boot Admin-注册同一应用程序的两个实例

Spring-是否可以在同一应用程序中使用多个事务管理器?

Android-Lollipop屏幕固定功能可在同一应用程序中跨多个活动使用吗?

如何使用“更新替代”来管理同一应用程序的多个已安装版本

android中同一应用的多个实例

如何从同一应用程序向多个JMS(活动MQ)代理发送消息?

在同一应用程序中启动多个scotty服务器的最优雅方法是?

如何在Glassfish服务器上部署同一应用程序的多个副本?

Liquibase可以处理由同一应用程序管理的多个模式吗?

库中同一应用程序的多个共享选项

是否可以在TestFlight上具有同一应用程序的多个版本?

远程更新同一应用程序的多个网站和数据库

Firebase:将同一应用程序部署到多个Firebase项目

同一应用程序下具有多个环境的Terraform和Elastic Beanstalk