向已启动的程序发送命令吗?

向已启动的程序发送命令吗?

例如:我通过双击 *.avi 视频文件启动了 VLC,并且电影正在播放。是否可以从终端(知道 PID...)向同一 VLC 实例发送一些命令(例如全屏或暂停...)?

这个问题不是为了一些实际用途,只是出于好奇。

答案1

这取决于该特定程序是否已经实现了这样的行为,这将在其手册页中描述。

没有通用的方法可以做到这一点,但是有些程序会针对它们接收到的特定信号定义特殊行为。例如,如果您USR1dd命令发送信号,它将打印出进度状态。

有时,根据程序和我们掌握的有关它的信息,我们可以通过在内存中查看其文件或数据来改变它的某些行为。

答案2

您可以使用这个答案从 StackOverflow 开始,作为基础来构建自己的命令以发送到 VLC。还请查看整个问答。它使用 d-bus 进行“远程控制”

dbus-send --type=method_call --dest=org.mpris.MediaPlayer2.vlc/org/mpris/MediaPlayer2 org.mpris.MediaPlayer2.Player.PlayPause

最后一个PlayPause可以替换为,例如Play,,,,。PausePreviousNext

相关内容