【问题标题】:How to stop Grunt如何阻止咕噜声
【发布时间】:2015-01-27 13:40:22
【问题描述】:

这个问题对某些人来说可能很明显,但我在整个互联网上搜索并找不到答案。我正在关注 Strut 上的安装指南。如何停止 Grunt 任务?我正在运行 Windows 7。

【问题讨论】:

  • 是的,我也是这么想的,但是它没有后台进程?

标签: node.js windows-7 gruntjs


【解决方案1】:
  • 如果这是您当前正在运行的任务,您可以使用ctrl + c 停止它

  • 如果它是在后台运行的任务,您可以使用 ps aux | grep grunt 找到他的进程 ID (pid),然后使用 kill {pid} 将其杀死

【讨论】:

  • netstat -botaskkill /PID {pid} 适用于 Windows 7。谢谢,我用 ctrl+c 解决了这个问题。没有后台进程。
  • 我不得不使用kill -9 {pid},因为我的 grunt 任务陷入了无限循环
【解决方案2】:

杀死当前正在运行的 grunt 任务的 liner:

kill -9 $(ps aux | grep -v "grep" | grep grunt | awk '{print $2}')

解释:

Kill是结束进程的命令

-9 选项用于ensure the process is actually killed 如果卡在循环中

ps -aux列出当前正在运行的进程

grep -v "grep" 排除任何带有单词 grep 的行,因此我们不会终止当前正在运行的 grep 命令

grep grunt 只是返回带有 grunt 的行

最后 awk '{print $2}' 返回第二列中的数字,即 pid。这就是传递给杀死的东西。

【讨论】:

  • 这是 Windows 还是 Linux?不能在我的 Windows 机器上运行。 “kill”未被识别为命令
  • @StephenR Linux
  • kill -9 $(ps aux | grep -v "grep" | grep grunt | awk '{print $2}')
【解决方案3】:

一个更短的解决方案,像 Felix Eve 的巧妙技巧:

kill -9 $(ps -aux | grep "[g]runt" | awk '{print $2}')

[] 避免在 grep 中使用“grunt”一词,因此不会被意外删除。

【讨论】:

  • 我曾经做过类似的事情。下一步自然是将其粘贴到您可以更轻松地运行的 shell 函数中。这会导致 grunt 不再运行的麻烦行为,并且在没有 pid 的情况下发出 kill -9 时会出现错误。我改为这样做:ps -aux | grep '[g]runt' | awk '{print $2}' | tee >(xargs -I {} kill -9 {})。这样做的好处是,在某些东西被杀死时向我显示 PID,而在没有东西被杀死时不显示 pid - 所以这是很好的视觉反馈。
【解决方案4】:

在 Powershell 中,运行 Get-Process cmdlet 以列出所有进程,或使用逗号分隔的列表进行过滤(通配符也可以)。它的别名是ps。例如:

Get-Process grunt, node

ps grunt, node

一旦确定了进程 ID(右起第三列,“Id”),就可以使用Stop-Process 结束它。它的别名是kill。例如:

Stop-Process 2570

kill 2570

我发布此内容是因为问题和评论者要求安装 Windows,而 grep 在我的 Windows 10 安装中不起作用,其 Powershell 等效项 Select-String 不能令人满意地返回完整过程信息。幸运的是 Get-Process 有自己的过滤器!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    • 2014-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-25
    相关资源
    最近更新 更多