एक GCP Ubuntu 18.04 छवि का उपयोग करना, सादा।

मैं सुविधाओं की तैनाती और मूल छवि में परिवर्तनों को स्वचालित करने के लिए वीएम पर स्टार्टअप स्क्रिप्ट का उपयोग करता हूं। मेरे पास एक है जो निम्न से शुरू होता है:

#! /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 फ़ाइल को लॉक कर रही है क्योंकि यह सिस्टम में स्वचालित सुरक्षा अद्यतन कर रही है। अगर मैं स्वचालित उन्नयन को पूरा करने देता हूं और स्क्रिप्ट को मैन्युअल रूप से लॉन्च करता हूं, तो सब कुछ ठीक चलता है।

क्या स्टार्टअप स्क्रिप्ट के निष्पादन में देरी करने का कोई तरीका है ताकि यह अप्राप्य उन्नयन के बाद शुरू हो जाए? मेरा मतलब है, कुछ ऐसा जो एक साधारण प्रतीक्षा आदेश से अधिक विश्वसनीय है।

स्टार्टअप स्क्रिप्ट को vm प्रति GCP दस्तावेज़ के मेटाडेटा के माध्यम से कॉन्फ़िगर किया गया है।

बहुत बहुत धन्यवाद और आपका दिन मंगलमय हो।

0
Bruno Tremblay 7 जिंदा 2020, 03:54

1 उत्तर

सबसे बढ़िया उत्तर

आप अपनी स्क्रिप्ट तब तक प्रतीक्षा कर सकते हैं जब तक कि dpkg लॉक नहीं रह जाता। यह AskUbuntu उत्तर 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
1
larsks 7 जिंदा 2020, 01:20