Ubuntu 无人值守升级与 google 云计算引擎上的启动脚本冲突
Ubuntu unattended upgrades conflict with startup script on google cloud compute engine
使用 GCP Ubuntu 18.04 图像,普通图像。
我在 vm 上使用启动脚本来自动部署功能和更改基本映像。我有一个以以下内容开头的:
#! /bin/bash
add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/'
apt update
apt -y upgrade
export DEBIAN_FRONTEND=noninteractive
apt -y install libpam-dev libpam-ldap r-base
不幸的是,在一些有一段时间没有 运行 的机器上,我收到以下错误:
来自 /var/log/syslog :
startup-script: INFO startup-script: dpkg: error: dpkg frontend is locked by another process
根据我的调查,我可以看到进程 unattended upgrades
正在锁定文件,因为它正在对系统进行自动安全更新。如果我让自动升级完成并手动启动脚本,一切运行正常。
有没有办法延迟启动脚本的执行,使其在无人值守升级完成后启动?我的意思是,比简单的等待命令更可靠的东西。
根据 GCP 文档,启动脚本是通过 vm 的元数据配置的。
非常感谢,祝你今天愉快。
您可以让您的脚本等到 dpkg 锁不再持有。 This AskUbuntu answer 建议使用 fuser
的解决方案来查看锁定文件是否被另一个进程使用:
#!/bin/bash
while fuser /var/lib/dpkg/lock >& /dev/null; do
echo "waiting for other package installs to complete..."
sleep 1
done
add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/'
apt update
apt -y upgrade
export DEBIAN_FRONTEND=noninteractive
apt -y install libpam-dev libpam-ldap r-base
使用 GCP Ubuntu 18.04 图像,普通图像。
我在 vm 上使用启动脚本来自动部署功能和更改基本映像。我有一个以以下内容开头的:
#! /bin/bash
add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/'
apt update
apt -y upgrade
export DEBIAN_FRONTEND=noninteractive
apt -y install libpam-dev libpam-ldap r-base
不幸的是,在一些有一段时间没有 运行 的机器上,我收到以下错误: 来自 /var/log/syslog :
startup-script: INFO startup-script: dpkg: error: dpkg frontend is locked by another process
根据我的调查,我可以看到进程 unattended upgrades
正在锁定文件,因为它正在对系统进行自动安全更新。如果我让自动升级完成并手动启动脚本,一切运行正常。
有没有办法延迟启动脚本的执行,使其在无人值守升级完成后启动?我的意思是,比简单的等待命令更可靠的东西。
根据 GCP 文档,启动脚本是通过 vm 的元数据配置的。
非常感谢,祝你今天愉快。
您可以让您的脚本等到 dpkg 锁不再持有。 This AskUbuntu answer 建议使用 fuser
的解决方案来查看锁定文件是否被另一个进程使用:
#!/bin/bash
while fuser /var/lib/dpkg/lock >& /dev/null; do
echo "waiting for other package installs to complete..."
sleep 1
done
add-apt-repository 'deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/'
apt update
apt -y upgrade
export DEBIAN_FRONTEND=noninteractive
apt -y install libpam-dev libpam-ldap r-base