Openvz

OpenVZ exec 無法重新打開標準輸入 / 無法鎖定管理目錄

  • April 9, 2014

我在所有 OpenVZ 容器中執行以下命令來更新/升級:

vzctl exec2 $VM "apt-get update & apt-get upgrade"

在所有情況下,我都會收到以下錯誤:

dpkg-preconfigure: unable to re-open stdin: No such file or directory

當有可用更新時,會跳過提示“您要繼續”。此外, dpkg 不能設置鎖:

E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?

我怎樣才能解決這個問題?

試試這個:

vzctl enter $VM --exec "apt-get update && apt-get upgrade"

&& 表示“如果上一個命令成功完成,則繼續執行下一個命令”。

來自http://wiki.openvz.org/Man/vzctl.8

執行 CTID 命令

在容器中執行命令。環境變數未在容器內設置。信號處理程序可能與預設設置不同。如果 command 為 -,則從標準輸入讀取命令。

exec2 CTID 命令

與 exec 相同,但返回碼是 command 的。

另一方面

輸入 CTID

$$ –exec command [arg … $$] 進入容器(給出容器的根外殼)。

選項 –exec 用於在進入容器後執行帶參數的命令。如果要執行的命令需要終端,這很有用

引用自:https://serverfault.com/questions/484407