የክትትል ስርዓታችን በዕቅድ ያቆምናቸውን አገልግሎቶች እንደገና አስጀምሯል
ኦፕስ
ከክትትል ስርዓቶቻችን አንዱ የተነቃቁ (enabled) ነገር ግን የማይሰሩ (not running) አገልግሎቶቻችንን ያስጀምራል። በኦክቶበር ሁለት ጊዜ በዕቅድ ያቆምናቸውን አገልግሎቶች አስጀምሯል። ሁለተኛው ጊዜ፣ ወደ አንዱ ጣቢያችን የሚጎበኙ ሰዎች ለወደ 45 ደቂቃ ስህተቶች ተገጥመዋቸዋል።
ይህ የክትትል ስርዓት የሚኖርበት ምክንያት
ለምሳሌ በስሙ ስለተገደለ በጥሩ ሁኔታ (cleanly) የሚወጣ አገልግሎት፣ በsystemd እይታ "failed" አይደለም። Restart=on-failure ወደ ኋላ አያመጣውም፣ systemctl --failedም አያካትተውም። ማንም እስኪያስተውል ድረስ ዝቅ ብሎ ይቆያል። ስለዚህ የክትትል ስርዓቱ የተነቃቁ ነገር ግን የማይሰሩ አገልግሎቶችን ፈልጎ ያስጀምራቸዋል።
ችግሩ ግን በእጅ ያቆምከው አገልግሎት ልክ እንደዚሁ ይታያል።
የመጀመሪያው ጊዜ
በኦክቶበር 7 ቀን የቪዲዮ ሠራተኛን (video worker) የሥራ ወረፋውን (job queue) ለማስተካከል በ12:47 በsystemctl stop አቆምነዋል። በ12:55 እንደገና እየሰራ ነበር፤ የክትትል ስርዓቱ አስጀምሮታል።
ሁለተኛው ጊዜ
በኦክቶበር 21 ቀን ሁለት ጣቢያዎቻችንን የሚያገለግለውን የማሽን ማህደረ ትውስታ (memory) ለሞዴል ሙከራ ፈልገን ነበር። አንድ ስክሪፕት የጣቢያዎቹን የዌብ አፕሊኬሽኖች፣ የማራኪ ሥራ (sync job) እና የዳታቤዝ ኮንቴይነር እንደገና በsystemctl stop አቆመ። ከ5 ደቂቃ አካባቢ ጣቢያዎቹን የሚከታተል የጊዜ ሰሌዳ (timer)፣ እና በ19:14 የክትትል ስርዓቱ ቱኔሉን እና የዌብ አፕሊኬሽኖቹን ወደ ኋላ አመጡ።
ቱኔሉ እንደገና ትራፊክ ተቀብሏል፣ ነገር ግን የዌብ አፕሊኬሽኖቹ መልስ መስጠት አልቻሉም፤ የሚፈተነው ሞዴል የማሽኑን 114 GiB ማህደረ ትውስታ ይይዝ ነበር። ከ19:14 እስከ 20:00 ድረስ፣ አንዳንድ ጎብኚዎች 502 ስህተቶች ተገጥመዋቸዋል። በ20:00 ቱኔሉን፣ የዌብ አፕሊኬሽኖቹን እና የማራኪ ሥራውን አሰናክለን (disabled)፣ የክትትል የጊዜ ሰሌዳውንም አቆምነው።
አሁን የምንጠቀመው ደንብ
- አገልግሎትን ለማቆም ያሰናክሉት (disable)፦
sudo systemctl disable --now <unit>። በsudo systemctl enable --now <unit>ወደ ኋላ ያመጡት። የክትትል ስርዓታችን የሚመለከተው የተነቃቁ (enabled) አገልግሎቶችን ብቻ ስለሆነ፣ የተሰናከለ (disabled) አገልግሎት ብቻውን ይቀራል። - ወደ ኋላ ሊመልሱት የሚችሉትን ሁሉ ያሰናክሉ፦ ከፊት ያለውን ቱኔል እና የሚከታተሉትን ማንኛውንም የጊዜ ሰሌዳ።
- አጭር ማቆም የዕድል ግጭት ነው።
stopን ብቻ ከተጠቀሙ፣ በቀጣዩ ምርመራ ከመድረሱ በፊት ጨርሱ፤ በማሽኖቻችን ላይ ይህ በደቂቃዎች ውስጥ ይከሰታል።
ከተመሳሳይ ወራት ሁለት ተጨማሪ የsystemd መከላከያዎች
systemctl mask --runtimeበ /etc/systemd/system ውስጥ ላለ የአሃድ ፋይል ምንም አያደርግም። በ /etc ውስጥ ያሉ አሃዶች ከ /run ውስጥ ካለው የጊዜ ማገጃ ይልቅ ቅድሚያ ስላላቸው፣ ትዕዛዙ ቢሳካም አገልግሎቱ ገና ይጀምራል። አገልግሎትን ለመያዝ፣ConditionPathExists=!/etc/<name>.holdያለውን ድሮፕ-ኢን እንጠቀማለን፡ ይህ ፋይል እስከሚኖር ድረስ፣ አገልግሎቱ በጅምርም ሆነ በእጅ አይጀምርም።systemctl is-activeእየሰራ ያለን የአንድ ጊዜ አገልግሎት እንደ ያልሰራ ይገልጸዋል።Type=oneshotየሆነ አገልግሎት እየሰራ ሳለ፣ ሁኔታው "activating" ስለሆነ፣is-activeይህንን ያሳያል እና 3 ይመልሳል። ለምሽቱ ስራ ለመጠበቅ የተዘጋጀwhile systemctl is-active --quiet job.service; do sleep 60; doneየሚመስል ሉፕ ወዲያውኑ ይወጣል። ይልቁንም ሁኔታውን ያንብቡ፡ active, activating, reloading ወይም deactivating ማለት ገና እየሰራ ነው ማለት ነው።
Factory Floor የተነቃቁ ነገር ግን እየሰሩ ያልሆኑ አገልግሎቶችን ይከታተላል። በነባሪ ሁኔታ ስለ እነሱ ያወቅቃል ብቻ፣ እርስዎ ያብሩት ከሆነ ብቻ ያስጀምራቸዋል። ከ1.0.3 ስሪት ጀምሮ ማስጠንቀቂያው አገልግሎትን በዕቅድ ለማቆም እንዴት እንደሚቻል ይነግራል፣ የእንቅስቃሴ መመሪያውም (runbook) ተመሳሳይ ነገር ይገልጻል።