按名称终止多个进程

按名称终止多个进程

我有一个关于终止正在运行的进程(以及我已经启动的进程)的问题

我已经启动了许多进程,现在我想终止它们

正在做

ps aux | grep aword

给了我想要终止的进程。(aword 是与进程相关的词)有很多,所以我需要一段时间才能杀死它们

我想做得更快。现在这些进程的一个特点是,有些进程的用户是“theuser”,有些进程的用户是“root”。我试过了,似乎我必须首先杀死带有“theuser”的那些,因为如果我先尝试根,该过程就会重新启动。

所以我的问题是如何才能终止上述 grep 命令产生的所有进程,但顺序是首先是“theuser”的进程,然后是 root 的进程(当然需要 sudo)

答案1

你最好使用pkill独自的)来完成这项任务:

  • 通过以下方式终止进程姓名部分/全部匹配):

    pkill 'name'
    
  • 通过以下方式终止进程姓名完全符合):

    pkill -x 'name'
    
  • 通过以下方式终止进程完整命令行部分/全部匹配):

    pkill -f 'command'
    
  • 通过以下方式终止进程完整命令行完全符合):

    pkill -xf 'command'
    

运行它而不sudo尝试仅有的杀死匹配的进程“可由调用用户杀死”或尝试sudo杀死所有匹配的进程。


注意:试运行(即只打印匹配的进程 ID,而不终止它们)可以通过更改pkillpgreppgrep -lpgrep -a分别打印进程名称和完整命令行) ... 例如:

pgrep 'name'

或者:

pgrep -l 'name'

或者:

pgrep -lx 'name'

或者:

pgrep -lf 'command`

或者:

pgrep -lxf 'command'

同样pgrep -a也如此。

相关内容