这杀死了带有文件/ foo / bar(在bash中)的句柄的每个进程:
lsof /foo/bar 2>&1 | grep "/foo/bar" | sed "s/ */\\t/g" | cut -f 2 | while read PID; do kill $PID; done
这似乎不是一个不常见的任务,不会有一个更简单的解决方案,所以我想知道是否有类似的事情killall
或kill
我想念的东西切换到了相同的地方。
那-t
是为了什么 手册页甚至建议您将其用于kill
。
lsof -t /some/file | xargs kill
传统上(以前lsof
),您将使用:
fuser /some/file 2> /dev/null | xargs kill
为了那个原因。
一些fuser
实现,例如大多数基于Linux的操作系统,Solaris或最新的FreeBSD都可以自行完成:
fuser -k /some/file
但是请注意,它们发送的是SIGKILL,而不是SIGTERM。您可以-TERM
通过某些实现和-s TERM
其他实现选择不同的信号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句