Можно ли послать процессу xpdf сигнал, который заставит его перезагрузить отображаемый файл?

Большинство BIOS принимают различные версии управляющих последовательностей клавиатуры vt100 для функциональных клавиш. Например, в руководстве по перенаправлению консоли dell среди прочего перечислены эквиваленты:

F7      ov  or    [ 1 8 ~

, а также некоторые дополнительные нестандартные последовательности, такие как

    r  r   r

(для ov вы должны ввести О.В. конечно). К сожалению, эти ключевые последовательности часто приходится набирать очень быстро, поскольку обычно между символами допускается только небольшой тайм-аут.

Один из способов отправки такой последовательности через telnet - заставить эмулятор терминала генерировать строку при некоторой привязке. Это очень зависит от эмулятора терминала.

Другой способ - отключить ваш Telnet и запустить команду для отправки только последовательности через новое соединение Telnet. Например, для тестирования этот ожидаемый сценарий выполняет вход в систему и отправляет последовательность F7 ( \ 033 \ [18 ~ ).

#!/bin/expect -f
spawn telnet localhost
expect login:
send myuserid\r
expect Password: 
send mypassword\r
expect "\$ "
send "echo hi\r"
expect "hi"
expect "\$ "
send "dd count=6 bs=1 | od -c\r"
send "\033\[18~\r"
expect "\$"
send "echo hi\r"
expect "hi"
send_user "done\n"

Очевидно, что вам не нужно входить в свою биографию, поэтому вы можете просто получить

#!/bin/expect -f
spawn telnet remotebios
expect "Connected to "
send "\033\[18~"

Вы также можете попробовать попроще

echo -e '\033[18~' | nc remotebios 23

4
14.02.2016, 00:20
1 ответ

Я не думаю, что вы можете использовать сигнал. Но Xpdf принимает синтетические события, поэтому легко программно ввести r в окно с помощью xdotool(1). К сожалению, окно xpdf не идентифицирует себя по PID, но, похоже, работает следующее:

xdotool search --onlyvisible  --class Xpdf key r

Если вы знаете имя файла, который отображает Xpdf, вы можете сопоставить заголовок окна:

xdotool --name 'Xpdf: foo.pdf' key r

Есть небольшой риск ложного срабатывания с другим окном, заголовок которого случайно содержит эту строку. Другие варианты сопоставления окон могут помочь точно определить нужное окно.

3
27.01.2020, 20:57

Теги

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