如何在Mac上停止ASP.NET Kestrel Web服务器

37

我正在我的 Mac 上使用 ASP.NET vNext K 运行时运行由 Yeoman 生成的简单 MVC 应用程序。 我可以从项目目录中运行 k kestrel,一切都正常启动和运行。 但是,当我按下 Ctrl+C(或我尝试过的任何其他键组合)时,服务器不会退出。 我必须关闭终端窗口才能关闭服务器。 我忽略了什么?


如果您使用 dnx . kestrel 启动站点,则同样的解决方案适用。 - CrnaStena
4个回答

45

如果仅仅按下 Enter 没有效果,那么请在运行 Kestrel 的终端窗口尝试以下方法:

  1. 按下 Ctrl + z 暂停进程。
  2. 键入:kill %1

35

事实证明,只需简单地按下“Enter”键即可干净地退出kestrel,无需在此之后杀死mono-sgen进程。关于这一点在Kestrel repo上有一个GitHub问题,要求使此更加明显。


6
在Ubuntu上,我似乎需要按下“Enter”键,然后再按CTRL+C。 - aikeru
在我的OS X上,只是使用“Enter”键就可以正常工作,尽管在终端提示返回后,mono-sgen进程下来之前会有短暂的延迟。 - Calvin

8
Hit Ctrl+Z后,您需要杀死mono-sgen进程,以便能够使用相同的IP:PORT再次运行“k kestrel”(如果有更好的方法,请告诉我们)。
在“Ctrl+Z”后输入“ps”以列出您的进程并查找“/ Users / YOU / .kre / packages / KRE-mono45-x86.1.0.0-alpha4”的PID,例如:“123456”,然后输入“kill 123456”。
更新:我尝试使用“killall mono-sgen”,但对我无效。

1
如果您在Mac上有任何进程正在运行,仅按“Enter”键是无效的。但是,如果您使用UnraisedCesar的示例并杀死所有进程。然后重新启动kestrel,您应该能够按“Enter”键(如果这是唯一运行的这些进程之一),它将正常结束。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接