我知道进程正在远程服务器上的端口5000上运行。我如何在单线cmd中调用它?
我可以ssh到该服务器并做kill $(lsof -i:5000 -t)
。有用。
如果我这样做,从我当地的终端
ssh [email protected] "kill $(lsof -i:5000 -t)"
它给出了错误
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
这是因为您的$(lsof -i:5000 -t)
命令在本地解释,而不是远程解释。只需使用简单的引号即可防止本地扩展。或者,您也可以转义您不希望在本地扩展的部分。
ssh [email protected] 'kill $(lsof -i:5000 -t)'
# or
ssh [email protected] "kill \$(lsof -i:5000 -t)"
基本上,与ssh
:
$VAR
):本地扩展\$VAR
):远程扩展ssh
到系统并执行命令
lsof -a +L1 | awk '$7 > 1073741824 && NR >1 {print $2}' | sort -nu | xargs kill
它也会清除/释放其他被阻止的内存