Cra*_*igt 12 linux .net-core kestrel-http-server asp.net-core
部署新版本的现有.net核心网站时.我如何首先安全地停止旧的运行的茶隼应用程序?
以下是我想写的内容(伪部署脚本):
dotnet stop mysite/mysite.dll <---- this line here
mv mysite/ mysite.bak/
cp newly-published-mysite/ mysite/
dotnet run mysite/mysite.dll
Run Code Online (Sandbox Code Playgroud)
killall dotnet似乎有点不安全.如果我在一个盒子上托管两个小网站,它会如何运作?
Ily*_*kov 10
根据这个讨论,现在没有安全的方法来阻止红隼.您需要通过dll的名称找到一个PID并将其杀死:
kill $(ps aux | grep 'MySite.dll' | awk '{print $2}')
Run Code Online (Sandbox Code Playgroud)
在进程树的情况下,您需要手动grep所有子ID并kill为每个子ID调用.就像在Microsoft.Extensions.Internal.ProcessExtensions.KillTree方法中完成的那样
(来自讨论的正确链接).
我决定使用主管来监控和管理流程.这是一篇关于设置它的优秀文章.
它允许简单控制特定的dotnet应用程序,如下所示:
supervisorctl stop MyWebsiteName
supervisorctl start MyWebsiteName
Run Code Online (Sandbox Code Playgroud)
它有一个巨大的优势,它可以尝试重新启动过程,如果它失败,或系统重新启动...无论出于何种原因.
| 归档时间: |
|
| 查看次数: |
14904 次 |
| 最近记录: |