如何在 Ubuntu 上使用 Cgroups 限制進程的 CPU 和記憶體使用量
在 Ubuntu 上使用 systemd cgroups 來限制指令或服務的 CPU 時間和記憶體使用量。比較瞬態作用域、持久限制和關鍵權衡。
此訊息E: Could not get lock /var/lib/dpkg/lock-frontend表示另一個軟體包管理進程已鎖定 APT 所需的鎖定。此鎖定可防止軟體包更改與目前操作重疊。當軟體更新程式、其他終端或自動更新程式正在安裝或配置軟體包時,通常會出現此訊息。最安全的解決方法是找到正在執行的操作並等待其完成;刪除鎖定檔案並非首要步驟。
以下指令適用於使用 APT 和 dpkg 的 Ubuntu 系統。桌面環境標籤和自動更新時間因 Ubuntu 版本和配置而異,因此請以您自己機器上的進程輸出為準。以下連結的 Ubuntu 24.04 LTS 手冊對這些命令進行了說明;如果您的版本行為有所不同,請查閱相應的手冊。
已驗證: dpkg dpkg 負責安裝和管理軟體包,而 APT 是其更高層級的命令列前端。此lock-frontend路徑用於協調軟體包管理工作。因此,此錯誤表明在執行命令時存在鎖定衝突,並不一定表示軟體包資料庫已損壞。 Ubuntu的 dpkg 手冊描述了 dpkg 的作用和軟體包狀態。
這取決於您的系統:鎖定進程可能是圖形更新程式、輔助apt命令apt-get、軟體安裝程式或自動維護作業。不要僅憑錯誤訊息就推斷進程名稱。請先關閉您啟動的任何其他軟體包管理器窗口,然後檢查電腦上的活動進程。
此訊息無法確定:它不能證明鎖定檔案已過期、Ubuntu 系統已凍結或軟體包資料庫已損壞。進程退出後,鎖定檔案仍可能保留在磁碟上;僅憑其存在並不能表示某個進程仍持有該鎖定。在進行任何變更之前,請先檢查是否存在該進程。
尋找正在安裝、更新或卸載軟體的「軟體更新程式」、「Ubuntu 軟體中心」或其他終端。如果某個更新程式正在運行,請保持其開啟狀態並等待完成。然後重試您最初的命令一次。

如果看不到圖形更新,請檢查進程列表:
ps -eo pid,ppid,stat,etime,cmd | grep -E '[a]pt|[d]pkg|unattended'
尋找類似`<lock_count> apt`、apt-get` dpkg<lock_count>`、`<lock_count>` 或 ` <lock_count>` 的指令unattended-upgrade。匹配項只是一個線索,並不能證明它是鎖持有者:搜尋結果也可能顯示不相關的命令或檢查本身。記下進程 ID (PID) 和命令,然後在下一個步驟中檢查該進程。
用於fuser查看進程是否正在存取前端鎖。請以管理員權限執行此命令,以便它可以報告其他使用者擁有的進程:
sudo fuser -v /var/lib/dpkg/lock-frontend
您也可以檢查其他常見的套件管理器鎖定路徑:
sudo fuser -v /var/lib/dpkg/lock /var/cache/apt/archives/lock /var/lib/apt/lists/lock
fuser報告使用指定文件的進程 ID;其詳細模式會顯示進程詳細資料。如果它列印出 PID,請將其與進程清單進行比較,並使用 `fuser` 命令檢查該 PID ps -fp PID,並將 `<pid>` 替換PID為顯示的 PID 編號。當沒有可存取的進程使用該路徑時,該工具可能不會傳回任何結果;雖然這項發現很有用,但它並不能診斷出先前命令失敗的原因。有關其輸出和限制,請參閱Ubuntu fuser 手冊。

如果該過程正在下載軟體包、解壓縮檔案、配置軟體包或在圖形更新程式中顯示進度,請讓它完成。大型更新和磁碟速度慢可能會比預期花費更長時間。操作完成後,請重試先前的apt-get命令。在第一個 APT 指令執行時啟動另一個指令並不會加快第一個指令的完成速度。

如果某個操作看起來卡住了,請檢查其輸出、CPU 或磁碟活動,以及已使用時間是否有變更。沒有單一的超時時間可以證明所有軟體包任務都卡住了。如果該進程顯然是您自己的前台命令,並且您可以安全地中斷它,請Ctrl+C在該終端中使用 `npm run dev` 命令,並允許它正常退出。不要因為某個進程持有鎖就將其終止。
作為最後的手段,如果您已確認該進程確實無回應,確定了其確切的進程 ID,並且了解中斷包配置可能會導致包未完成,請發送正常的終止信號:
sudo kill -TERM PID
替換PID為已確認的進程 ID。避免使用 `catch` kill -9、killall dpkg`catch` 或 `catch`fuser -k等常規修復方法;強制終止程序可能會中斷軟體包腳本或導致工作需要恢復。如果該任務是自動服務而非您啟動的進程,請先檢查其狀態或等待一段時間,而不是終止一個未知的進程。
如果沒有 APT 或 dpkg 進程,且先前的安裝或升級中斷,請讓 dpkg 完成已解壓縮軟體包的配置,然後檢查 APT 的軟體包狀態:
sudo dpkg --configure -a
sudo apt-get check

請仔細閱讀所有提示和錯誤訊息。第一個命令可以運行軟體包配置腳本;這可能需要一些時間或詢問一些問題。apt-get check該指令會檢查是否有損壞的依賴關係。如果報告依賴關係問題,請在使用之前查看建議的變更sudo apt-get -f install;該選項會嘗試修復依賴關係,並可能為此安裝或刪除軟體包。如果您不理解任何刪除操作,請不要批准。 Ubuntu apt-get 手冊check對此進行了解釋--fix-broken。
fuser進程列表。dpkg --configure -a。」此指令用於處理待處理的設定工作;它不會解決活動進程仍然持有的鎖定。請先等待或安全地解決鎖持有者,然後僅在需要時使用修復命令。鎖持有者退出後,重試原始指令。成功運行應該能夠繞過鎖定訊息並完成其請求的套件操作。如果dpkg --configure -a操作完成且未apt-get check報告任何依賴項問題,則表示套件配置和依賴項檢查狀態良好;但這並不能保證所有無關的儲存庫或網路問題都已修復。
如果鎖定錯誤立即返回,請記錄確切的鎖定路徑、該路徑的輸出sudo fuser -v、匹配的進程命令和進程 ID (PID),以及任務是否仍在進行中。這些細節有助於區分正常的競爭更新和需要進一步故障排除的進程。切勿刪除檔案/var/lib/dpkg或擦除鎖定檔案來代替識別進程。
在 Ubuntu 上使用 systemd cgroups 來限制指令或服務的 CPU 時間和記憶體使用量。比較瞬態作用域、持久限制和關鍵權衡。
如果 Gooroom OS 支援英語,請將選單語言切換為英語。請依照 GNOME 設定路徑、Debian 語言環境回退方案和故障排除步驟進行操作。
了解如何透過檢查活動軟體包進程、安全性等待以及僅在更新中斷時修復 dpkg 來修復 Ubuntu apt-get lock 錯誤。
使用 mdadm 在 Debian 12 上設定雙磁碟 RAID 1 資料陣列:識別磁碟、安全分割區、設定啟動元件、格式化 ext4 並驗證掛載。
使用 KontrolPack 輕鬆控製網路中的電腦。輕鬆連接和管理運行不同作業系統的電腦。
你想自動執行一些重複的任務嗎?與其手動點擊按鈕,不如用一個應用程式
iDownloade 是一款跨平台工具,可讓使用者從 BBC 的 iPlayer 服務下載無 DRM 保護的內容。它可以下載 .mov 格式的視頻
我們已經詳細介紹了 Outlook 2010 的功能,但由於它不會在 2010 年 6 月之前發布,所以現在是時候看看 Thunderbird 3 了。
每個人偶爾都需要休息一下,如果你想玩有趣的遊戲,不妨試試 Flight Gear。它是一款免費的多平台開源遊戲。
MP3 Diags 是修復音樂音訊收藏問題的終極工具。它可以正確標記您的 MP3 文件,添加缺少的專輯封面,修復 VBR