Openvz
OpenVZ exec 無法重新打開標準輸入 / 無法鎖定管理目錄
我在所有 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 用於在進入容器後執行帶參數的命令。如果要執行的命令需要終端,這很有用