如果我的進程正在加載.so庫,並且該庫的新版本可用,是否可以在不進行進程重新啓動的情況下切換到新庫?或者答案取決於是否有一個參數更改爲庫中的某個現有函數?在不重新啓動進程的情況下更新共享庫
我正在一個漂亮的大系統中運行100個進程,每個加載10個庫。這些庫提供了特定的功能,並由獨立的團隊提供。所以當其中一個庫改變時(對於一個錯誤修復可以說)理想的事情就是在不影響正在運行的進程的情況下發布它。可能嗎 ?
編輯謝謝!在我的情況下,當一個新庫可用時,所有正在運行的進程必須開始使用它。它沒有選擇讓它們以舊版本運行並在稍後提取新版本。所以看起來更安全的選擇是重新加載進程。
除非你控制所有的可執行文件,否則熱更新文件是不可能的,沒有醜陋的黑客像ptracing進程。另外,Linux不使用DLL。 – BatchyX 2012-04-03 20:49:17