Назад | Перейти на главную страницу

управлять процессом через ssh по PID

Скажем, на сервере запущен процесс (PID 1501). на сервере открыт firefox (как 1501) .. с удаленного компьютера я хочу отправлять команды на PID 1501 (например, 1501 -new-tab). Как мне запустить эту команду по ssh?

TL; DR: как отправить аргументы командной строки конкретному pid?

Как правило, вы не можете отправлять аргументы командной строки конкретному pid.

В Firefox настроена собственная система удаленного управления / команд, которая позволяет отправлять такие вещи, как -new-tab, в запущенный экземпляр. Прошло некоторое время с тех пор, как я смотрел на это, но я считаю, что это просто зависит от того, установлена ​​ли переменная DISPLAY, соответствующая той, в которой работает firefox.

Например, на сервере у вас, вероятно, установлено значение DISPLAY: 0.0 (первый локальный X-дисплей). Вы можете проверить это, запустив

echo $ DISPLAY

с терминала внутри X на самом сервере. Если это правильно, то вы сможете подключиться к серверу по ssh от имени того же пользователя, который запускает X и firefox, установив для параметра DISPLAY значение: 0.0, а затем запустив firefox -new-tab http: // бла /:

ssh user@server
export DISPLAY=:0.0
firefox -new-tab http://blah

Однако, когда я это сделал, это обычно работает иначе - я запускаю firefox на моем локальном компьютере, я использую ssh для удаленной системы и по какой-либо причине запускаю firefox -new-tab, и он открывает новую вкладку на Firefox работает на моем локальном компьютере. Нет причин, по которым он не должен работать в обратном направлении, но это немного сложно.

Обновлено Я только что протестировал это, подключившись к другой машине, а затем вернувшись к своей локальной, и это определенно работает, как было предложено. ssh с тем же именем пользователя, на котором уже запущен firefox, правильно установите переменную DISPLAY, тогда удаленные команды firefox будут работать.