![如何在 ubuntu 中使用 Sl stat 终止所有进程?](https://linux22.com/image/686050/%E5%A6%82%E4%BD%95%E5%9C%A8%20ubuntu%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20Sl%20stat%20%E7%BB%88%E6%AD%A2%E6%89%80%E6%9C%89%E8%BF%9B%E7%A8%8B%EF%BC%9F.png)
我有一些脚本,它们在后台为任务生成多个进程。大多数脚本都会终止,但只有少数脚本不会在完成任务后终止。
这些类型的进程的数量不断增加,现在它们正在消耗服务器的很大一部分资源。
它们的状态都是“Sl
我怎样才能一次性杀死它们?”例如,我想运行一个 cron,它会在一段有限的时间后杀死并从系统中删除所有这些进程。
答案1
此命令在我的系统上有效,可终止状态为“S”的 vi 进程。将 S 更改为 S1,并将进程名称正则表达式模式更改为任意内容,即可获得所需的内容。
ps ah -o pid,state,command | egrep "^.+\ S\ vi$" | cut -f1 -d' ' | xargs kill -KILL
计划任务:
00 01 * * * ps ah -o pid,state,command | egrep "^.+\ S\ vi$" | cut -f1 -d' ' | xargs kill -KILL
我建议您研究一些更优雅的东西,比如在现有脚本中构建一些东西来处理挂起的进程或弄清楚它们为什么不退出等等......