作为隧道脚本的一部分,我想删除/终止任何现有隧道
到目前为止我已经做到了:
matt@HY731AA:~$ ps aux | grep "ssh -N lin1tunnels" | grep -v grep | awk '{print $2}' | xargs -0 kill -9 错误:垃圾进程 ID "5321 5322 "。
输出似乎包含“虽然删除了 xargs 却没有显示”,有没有办法清理输出以准备 xargs。或者也许有人知道更好的方法来实现上述目标
答案1
@John 建议使用 pkill 来执行此操作(如果您有的话),这是更简洁的方法,但仅供参考:问题在于您使用了 xarg 的-0
标志(告诉它查找以空分隔的值),但发送的是换行符分隔的值。此外,不要使用第二个 grep 从结果中删除第一个 grep,而是搜索与自身不匹配的模式:
ps aux | grep "[s]sh -N lin1tunnels" | awk '{print $2}' | xargs kill -9