在 Linux Ubuntu 伺服器上用 dnx 基于 Kestrel 成功運作一個 ASP.NET 5 站點後,怎麼也無無法退出。不管是按回車,還是按ctrl-C,還是按ctrl-Z。直接關閉用戶端 ssh 視窗,指令依然在運作,站點依然可以正常通路。
在 Linux Ubuntu 伺服器上用 dnx 基于 Kestrel 成功運作一個 ASP.NET 5 站點後,怎麼也無無法退出。
運作的指令如下:
/data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrel
Started
但運作之後,怎麼也退不出。不管是按回車,還是按ctrl-C,還是按ctrl-Z。
Started
^C^Z
直接關閉用戶端 ssh 視窗,指令依然在運作,站點依然可以正常通路。
然後重新用 ssh 登入上去,運作 ps all 指令發現了這個無法退出的程序。
ps all
F UID PID TIME COMMAND
4 0 4993 /data/git/dnx/artifacts/build/dnx-coreclr-linux-x64
注:如果用ps all看不到,可以用ps aux。
于是 kill 這個程序:
kill 4993
但 kill 之後,這個程序依然在運作。
後來在網上找到了終極方法 —— kill -9 :
kill -9 4993
/data/git/dnx/artifacts/build/dnx-coreclr-linux-x64/bin/dnx . kestrel
Started
Killed
通過這個方法解決了問題。
注:Kestrel 的這個問題已經在基于 mono 的 dnx 中修複,基于 coreclor 的 dnx 中暫時還未修複,詳見 Terminal window hangs on linux after starting Kestrel server #108 。