如何杀死描述中包含“/var/”字符串的所有进程?
How to kill all processes which have '/var/' string in the description?
我正在使用 lsof
找出描述中包含 /var/
的所有进程。
[root@localhost ~]# lsof | grep /var/ | less
systemd 1 root 105u unix 0xffff9b25fae49680 0t0 21311 /var/run/cups/cups.sock type=STREAM
systemd 1 root 134u unix 0xffff9b25f509cd80 0t0 21334 /var/run/libvirt/virtlogd-sock type=STREAM
systemd 1 root 135u unix 0xffff9b25fae49f80 0t0 21315 /var/run/.heim_org.h5l.kcm-socket type=STREAM
systemd 1 root 137u unix 0xffff9b25fae48d80 0t0 21318 /var/run/libvirt/virtlockd-sock type=STREAM
polkitd 745 polkitd mem REG 8,3 10406312 2107847 /var/lib/sss/mc/initgroups
polkitd 745 polkitd mem REG 8,3 6406312 2107846 /var/lib/sss/mc/group
我现在正尝试使用以下命令终止所有这些进程:
kill -9 $(lsof | grep /var/)
但是出现错误:
-bash: kill: root: arguments must be process or job IDs
-bash: kill: 8w: arguments must be process or job IDs
-bash: kill: REG: arguments must be process or job IDs
-bash: kill: 8,3: arguments must be process or job IDs
你想
- 仅匹配 NAME 字段,并且
- 只打印 pid,而不是整行:
lsof | awk -v pattern="/var/" ' ~ pattern {print }'
在我的系统上,这似乎输出了很多重复项:
lsof | awk -v pattern="/var/" ' ~ pattern {print }' | sort -u
并使用 xargs
传递要杀死的 pid 列表
lsof | awk -v pattern="/var/" ' ~ pattern {print }' | sort -u | xargs echo kill
如果您满意它按预期工作,请删除“echo”。
我正在使用 lsof
找出描述中包含 /var/
的所有进程。
[root@localhost ~]# lsof | grep /var/ | less
systemd 1 root 105u unix 0xffff9b25fae49680 0t0 21311 /var/run/cups/cups.sock type=STREAM
systemd 1 root 134u unix 0xffff9b25f509cd80 0t0 21334 /var/run/libvirt/virtlogd-sock type=STREAM
systemd 1 root 135u unix 0xffff9b25fae49f80 0t0 21315 /var/run/.heim_org.h5l.kcm-socket type=STREAM
systemd 1 root 137u unix 0xffff9b25fae48d80 0t0 21318 /var/run/libvirt/virtlockd-sock type=STREAM
polkitd 745 polkitd mem REG 8,3 10406312 2107847 /var/lib/sss/mc/initgroups
polkitd 745 polkitd mem REG 8,3 6406312 2107846 /var/lib/sss/mc/group
我现在正尝试使用以下命令终止所有这些进程:
kill -9 $(lsof | grep /var/)
但是出现错误:
-bash: kill: root: arguments must be process or job IDs
-bash: kill: 8w: arguments must be process or job IDs
-bash: kill: REG: arguments must be process or job IDs
-bash: kill: 8,3: arguments must be process or job IDs
你想
- 仅匹配 NAME 字段,并且
- 只打印 pid,而不是整行:
lsof | awk -v pattern="/var/" ' ~ pattern {print }'
在我的系统上,这似乎输出了很多重复项:
lsof | awk -v pattern="/var/" ' ~ pattern {print }' | sort -u
并使用 xargs
传递要杀死的 pid 列表lsof | awk -v pattern="/var/" ' ~ pattern {print }' | sort -u | xargs echo kill
如果您满意它按预期工作,请删除“echo”。