我在 do-release-upgrade 子進程中按下了 control-c。我該如何恢復?

我在 do-release-upgrade 子進程中按下了 control-c。我該如何恢復?

在從 Utopic Unicorn 升級到 Vivid Vervet 的過程中,do-release-upgrade問我要保留哪個版本的設定檔。我選擇了運行(根)shell 的選項,注意到只有一些小更改,然後運行vim來合併兩個版本。我習慣使用Ctrl+C來完成插入,但似乎在這種情況下實際上殺死了一些東西,因為我回到了我自己的 shell 之一。

經過一番調查後,我注意到該vim實例仍在運行。我殺死了它並返回到我啟動它的根 shell。然後,我退出了 root shell,希望回到升級腳本,但tmux我執行它的實例卻退出了。

此時,我可以看到腳本仍在運行並且可能正在執行某物(CPU 使用率似乎始終為 11%)。與我的類似情況不同,沒有screenbyobu實例可以重新連接 - 事實上,根據ps,它失去了控制終端。

這裡發生了什麼事? 我應該怎麼做才能使系統恢復正常狀態並完成升級?

答案1

從伺服器故障複製貼上:

AFAICT,無法重新連接到升級過程。然而,這根本不是一場災難。我殺死了掛起的dpkg進程,然後運行dpkg --configure -a。這將引導您重新配置系統上已安裝的所有軟體包,並解決在此過程中出現的任何問題。之後,我用來aptitude升級剩餘的軟體包,這些軟體包已經下載,但尚未安裝或設定。

禮貌:https://serverfault.com/q/387547/109361

更新:

據我了解,如果aptitude您的系統中未安裝 ,則可以使用 來完成相同的操作。apt-get

這對OP是有效的:

升級腳本已經將來源 /etc/apt/sources.list從 Utopic 更改為 Vivid 並停用了所有第三方來源。之後dpkg --configure --pendingapt-get install --fix-brokenapt-get updateapt-get dist-upgrade,然後重新啟動,一切似乎現在都正常了。

更多資訊:

從相關錯誤報告,做apt-get dist-upgrade似乎是讓事情正常運作的關鍵。

相關內容