我知道一个进程正在远程服务器的 5000 端口上运行。
我如何在单行 cmd 中调用它?
我可以通过 ssh 连接到该服务器并执行 kill $(lsof -i:5000 -t)
.有用。
如果我这样做,从我的本地终端
ssh user@ip.ip.ip.ip "kill $(lsof -i:5000 -t)"
它给出了类似的错误
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
最佳答案
这是因为您的 $(lsof -i:5000 -t)
命令在本地解释,而不是远程解释。只需使用简单的引号来防止局部扩展。或者,您也可以转义您不想在本地扩展的部分。
ssh user@ip.ip.ip.ip 'kill $(lsof -i:5000 -t)'
# or
ssh user@ip.ip.ip.ip "kill \$(lsof -i:5000 -t)"
基本上,使用
ssh
:$VAR
):局部扩展 \$VAR
):远程扩展关于bash - 在 ssh 之后从 lsof 杀死一个进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48078249/