Отправить команду в уже запущенную программу?

Например: Я запустил VLC путем двойного щелчка по *.avi видеофайлу, и фильм работает. Действительно ли возможно отправить некоторую команду (напр. полный экран или пауза...) к тому же самому экземпляру VLC от терминала (знание PID...)?

Этот вопрос не для некоторого практического применения, это - просто любопытство.

0
задан 30 June 2017 в 10:07

2 ответа

Можно использовать этот ответ от StackOverflow как основа для создания собственной команды, которая будет отправлена в VLC. Также проверьте весь Q/A. Это использует d-шину для "дистанционного управления"

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

, последнее PlayPause может быть заменено, например, Play, Pause, Previous, Next.

1
ответ дан 3 November 2019 в 00:33

Это зависит от того, реализовала ли та конкретная программа такое поведение или нет, который будет описан на его странице справочника.

нет никакого общего способа сделать это, однако некоторые программы определяют специальное поведение для определенных сигналов, которые они получают. Например, если Вы отправите USR1 сигнал к dd команда, то это распечатает состояние прогресса.

Иногда, в зависимости от программы и информации мы имеем об этом, мы можем изменить часть ее поведения путем ввода по абсолютному адресу вокруг ее файлов или данных в памяти.

3
ответ дан 3 November 2019 в 00:33

Другие вопросы по тегам:

Похожие вопросы: