我有一個用.Net Core編寫的控制檯應用程序。我將在Docker容器中運行它。我想在停泊命令給出時優雅地停止這個過程,而不是讓這個過程在做某件事的過程中被殺死。有沒有一種方法可以在控制檯應用程序中偵聽此信號?在容器之前,我只需讓控制檯應用程序監聽在控制檯窗口中鍵入的內容即可。如果有一種方法可以讓碼頭工通過標準輸入發送消息,那麼我可以用它來工作,但我對Docker還不夠了解,但知道什麼是可能的。如何在.NET核心可執行文件中監聽來自Docker的信號?
2
A
回答
1
我的解決辦法是要最終被不使用控制檯應用程序泊塢窗容器,畢竟。我瞭解到,如果我創建了一個Web項目,我可以通過網站的Startup中的ApplicationStopping CancellationToken來告訴容器何時請求關閉。因此,不是讓容器啓動一個長時間運行的控制檯應用程序,而只是託管一個沒有Web內容的網站。該網站將啓動我長時間運行的過程,並且當容器向網站發送關閉信號時,我的過程可以優雅地停止。
public void Configure(IApplicationBuilder app
, IHostingEnvironment env
, IApplicationLifetime applicationLifetime)
{
applicationLifetime.ApplicationStarted.Register(ApplicationStarted);
applicationLifetime.ApplicationStopping.Register(ApplicationStopping);
applicationLifetime.ApplicationStopped.Register(ApplicationStopped);
}
0
你可以通過一個命令到正在運行的進程中使用docker exec
相關問題
- 1. 如何在接收信號時自動執行gdb核心轉儲
- 2. 套接字監聽在Ubuntu與.NET核心
- 3. (Mac)離開核心文件的可執行文件而不是/核心?
- 4. 如何從HPUX中的核心文件獲取可執行文件名?
- 5. 如何委派來自監聽器的可運行代碼?
- 6. 如何創建一個dotnet核心單個可執行文件
- 7. 是否可以在.net核心中重定向來自中間件的請求
- 8. 明確監聽信號
- 9. 監控可執行文件
- 10. 來自核心文件的C++異常信息
- 11. 來自內核事件監聽器的返回響應
- 12. 在.net核心Ef中的核心
- 13. 已執行線程的核心編號
- 14. 核心文件屬於哪個可執行文件?
- 15. 如何隱藏可執行文件中的符號名稱(來自asm代碼)
- 16. 如何使事件監聽器在javascript中最後執行
- 17. 核心文本 - 行號
- 18. 如何將信息存儲在我的可執行文件中.Net
- 19. Alfresco bpmn自定義執行監聽器
- 20. 如何在.NET中引用可執行文件中包含App.config信息?
- 21. 來自JAR的Java可執行文件
- 22. 來自Python可執行文件的NTEventLogHandler
- 23. 運行.NET核心
- 24. 在.NET核心
- 25. Angular2/Ionic2:在監聽器中執行$ http.get
- 26. 如何在.NET核心中創建SQLite數據庫文件?
- 27. 如何在.Net核心應用程序中讀取web.config文件
- 28. 如何在監視核心數據時複製NSFetchedResultsController正在執行的操作?
- 29. 如何在.Net中獲得可執行文件的圖標?
- 30. 如何自定義moodle核心文件?
本文檔展示瞭如何通過Docker發送信號,但是如何讀取.Net核心代碼中的信號? – Eric