假设在服务器上运行了一个进程(PID 1501).服务器有firefox打开(如1501)..从远程计算机,我想发送命令到PID 1501(例如1501 -new-tab).我如何在ssh上运行该命令?
TLDR:如何将命令行参数发送到特定的pid?
通常,您不能将命令行参数发送到特定的pid.
Firefox拥有自己的远程/命令系统设置,允许您将-new-tab命令之类的内容发送到正在运行的实例.我看了它已经有一段时间了,但我相信它只是依赖于将DISPLAY变量设置为与firefox运行的变量相匹配.
EG,在服务器上,您可能将DISPLAY设置为:0.0(第一个本地X显示).您可以通过运行来检查
echo $DISPLAY
从服务器本身X内的终端.如果这是正确的,那么你应该能够以运行X和firefox的同一用户ssh进入服务器,将你的DISPLAY设置为:0.0,然后运行firefox -new-tab http://blah/:
ssh user@server export DISPLAY=:0.0 firefox -new-tab http://blah
但是,当我这样做时,它通常以另一种方式工作 – 我在我的本地机器上运行firefox,我ssh到远程系统,无论出于什么原因运行firefox -new-tab,它会打开一个新的选项卡firefox在我的本地机器上运行.没有理由它不应该反向工作,但它有点复杂.
更新我刚刚通过sshing到另一台机器测试了这个,然后回到我的本地机器,它肯定按照建议工作. ssh在与已运行firefox的用户名相同的情况下,正确设置DISPLAY变量,然后firefox远程命令将起作用.