【问题标题】:Bash: kill with pipeBash:用管道杀死
【发布时间】:2013-06-05 03:42:49
【问题描述】:

尝试kill 非常与Java相关的过程。有没有办法使用管道呢?我试过了

ps -e|grep "java"|kill

和

ps -e|grep "java"|xargs kill

都不行。

【问题讨论】:

  • 我不能轻易测试这个,但我认为你应该隔离进程号。类似ps -e|grep "java"| awk '{print $2}' | xargs kill。
  • 测试过了。和 ps -e|grep "java"| awk '{打印 $1}' | xargs kill 是我最初寻找的答案
  • 值得注意的是,killall 和其他杀死具有该名称的所有进程的方法可能会导致不良行为,因此请谨慎使用。

标签: bash pipe


【解决方案1】:

pgrep 是 grepping 进程的正确工具:

kill $(pgrep -f java)

pgrep 中的 -f 标志用于匹配用于执行进程的完整命令行。

【讨论】:

  • pgrep 的意思很好,但既然意图是杀死,为什么不直接使用它的表亲pkill?
  • 谢谢。他们都工作。我以前不知道 pkill/pgrep
【解决方案2】:

有,但这更容易(假设你的系统有killall):

killall java

【讨论】:

    【解决方案3】:

    您也可以使用pkill java。 pkill 是 pgrep 和 kill 组合成一个命令。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-24
      • 1970-01-01
      相关资源
      最近更新 更多