【发布时间】:2014-02-06 23:30:30
【问题描述】:
我正在使用 powershell 在 Windows 上运行 sbt。我正在尝试找出杀死 sbt 的最佳方法。我想要这样做的一个例子是如果我忘记设置我的代理设置。如果我忘记设置它们,sbt 在尝试解决每个依赖项时通常会挂起 30 秒或更长时间。如果有一堆依赖项,则需要一段时间才能等待它们全部失败。
如果这是cygwin 或bash,我很确定ctrl+c 会起作用,但它在powershell 中似乎没有效果。我也尝试过ctrl+break,它似乎提供了线程转储,但不会停止进程。我可以去任务管理器搜索进程并杀死它,但我希望有更简单的方法,而且我应该从任务管理器中杀死哪个进程并不总是很明显。
我还尝试了ctrl+z、ctrl+d 和其他一些似乎没有多大作用的其他方法。我猜这更像是一个不通过信号的powershell问题,但我不太确定。
【问题讨论】:
-
你是如何从 Powershell 启动它的?
-
在这种情况下,任务管理器的一个更好的替代方案是进程资源管理器:technet.microsoft.com/en-us/sysinternals/bb896653.aspx 使用它你可以看到进程的完整命令行。
-
为什么我们找不到 sbt.exe 或其他任何东西并通过 $PID 停止它?
Get-Process sbt | ForEach-Object -Process {Stop-Process -Id $_.ID}告诉我我们正在谈论的可执行文件的名称。
标签: powershell sbt