溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中怎么替換文件

發(fā)布時間:2021-07-15 14:04:40 來源:億速云 閱讀:788 作者:Leah 欄目:系統(tǒng)運維

這篇文章給大家介紹Linux中怎么替換文件,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

  線上替換一個正在運行進程的文件時(包括二進制、動態(tài)庫、需要讀取的資源文件等)。應避免使用cp/scp操作。而需要使用mv/rsync作為替代。

  原因:cp是將源文件截斷然后寫入新內(nèi)容。也就是說正在打開這個文件的進程可以立刻感知到修改。修改文件內(nèi)容很可能導致程序邏輯錯誤甚至崩潰。而mv則是標記”刪除“老文件,然后放一個新的同名文件過去。也就是說老文件和新文件其實是兩個不同文件(inode不同),只是名字一樣而已。正在打開老文件的進程不會受到影響。如果進程使用了mmap打開某文件(比如載入so),如果目標文件被使用cp覆蓋并且長度變小。那么讀取差額部分的地址時(在新文件中其實已經(jīng)不存在了),會導致SIGBUS信號。使進程崩潰。

  至于可執(zhí)行文件本身。倒是不怕cp導致崩潰。。因為cp時會報”text file busy“。壓根cp不了。這時候也應該使用mv類操作。替換完成后重啟進程。執(zhí)行的就是新的可執(zhí)行文件了。

關于Linux中怎么替換文件就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI