99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學院 頭像
蘋果6袋
6
麥子學院

如何更好的實現(xiàn)Linux服務器中文件刪除與替換

發(fā)布時間:2016-10-31 16:33  回復:0  查看:2250   最后回復:2016-10-31 16:33  

Linux運維中經(jīng)常遇到要替換Linux服務器系統(tǒng)程序或者業(yè)務應用程序文件的情況,很多人都會擔心,直接替換會不會導致Linux系統(tǒng)程序崩潰或者應用程序崩潰,而需要關閉服務才敢替換,今天在freebuf網(wǎng)站偶然閱讀到一篇文章《 如何進行Linux平臺共享庫替換?》,突然明白了以前沒有搞清楚的幾個自認為奇怪的現(xiàn)象。

  這些現(xiàn)象包括但不限于:

  1.刪除某個應用程序的部分文件,為何不會導致此應用程序崩潰

  2.nginx等服務如何可以做到平滑重啟

  3.某些刪除的文件為何可以通過lsof根據(jù)inode找回

  4.為何某些應用程序的文件替換或變更后需要重啟才能生效

 

  問題的答案在 這篇文章?中得到了很清楚的解答。原來對未被加載的SO,利用復制命令(cp new.so old.so)即可直接完成靜態(tài)替換,新SO在下次加載時生效。對于已經(jīng)加載的原SO,直接用新SO復制替換將會導致相應程序崩潰,此種情況 可以使用刪除原SOrm -f old.so)或修改原SO名稱(mv old.so oldx.so)后,再復制新SO的方法代替,新SO同樣在下次加載時生效。

  程序崩潰的原因是復制替換操作會破壞系統(tǒng)訪問原SO的索引節(jié)點inode,導致系統(tǒng)找不到原SO。系統(tǒng)為每個加載到內(nèi)存中的文件創(chuàng)建對應的inode,用來管理該文件,inode包含了文件的元信息,如文件字節(jié)數(shù)、擁有者ID、讀寫執(zhí)行權限等。系統(tǒng)以inode標識程 序加載的SO,不再關心文件名, 修改SO名稱并未改變對應inode ,因此程序可以繼續(xù)正常運行; 刪除SO只是無法查看,系統(tǒng)直到程序釋放SO后才真正刪除SOinode ,因此程序也可以繼續(xù)正常運行;但是在直接復制替換時,新SO將會繼承原SOinode,程序無法繼續(xù)訪問原SO,從而導致程序崩潰。

  因此,按照這個思路,日后在Linux運維工作中,可以按照這個理論去做一些事情,比如無論是在修改還是替換錢都保留源文件,這也是為什么在做修改前要備份的理由之一。

 

 

文章來源:通信,我的最愛

您還未登錄,請先登錄

熱門帖子

最新帖子

?