GNU Shepherd 0.9 init စနစ်အား ဖြန့်ချိသည်။

နောက်ဆုံးသိသာထင်ရှားသောဖြန့်ချိမှုကိုဖွဲ့စည်းပြီးနောက် နှစ်နှစ်အကြာတွင်၊ ဝန်ဆောင်မှုမန်နေဂျာ GNU Shepherd 0.9 (ယခင် dmd) ကို မှီခိုအားထားမှုကို ပံ့ပိုးပေးသည့် SysV-init ကနဦးစနစ်အတွက် အခြားရွေးချယ်စရာတစ်ခုအဖြစ် GNU Guix System ဖြန့်ဖြူးမှု၏ developer များမှ တီထွင်ထုတ်လုပ်ထားခြင်းဖြစ်သည်။ . Shepherd control daemon နှင့် utilities များကို Guile ဘာသာစကား (Scheme language ၏ အကောင်အထည်ဖော်မှုများထဲမှ တစ်ခု) ဖြင့် ရေးသားထားပြီး ဝန်ဆောင်မှုများကို စတင်ရန်အတွက် ဆက်တင်များနှင့် ကန့်သတ်ချက်များကို သတ်မှတ်ရန်အတွက်လည်း အသုံးပြုပါသည်။ Shepherd ကို GuixSD GNU/Linux ဖြန့်ဖြူးမှုတွင် အသုံးပြုထားပြီးဖြစ်ပြီး GNU/Hurd တွင်လည်း အသုံးပြုရန် ရည်ရွယ်ထားသော်လည်း Guile ဘာသာစကားကို ရရှိနိုင်သည့် POSIX-ကိုက်ညီသည့် မည်သည့် OS တွင်မဆို လုပ်ဆောင်နိုင်သည်။

Shepherd သည် ဝန်ဆောင်မှုများအကြား ဆက်စပ်မှုများကို ထည့်သွင်းစဉ်းစားကာ ရွေးချယ်ထားသော ဝန်ဆောင်မှုအပေါ် မူတည်သည့် ဝန်ဆောင်မှုများကို တက်ကြွစွာ ဖော်ထုတ်ခြင်းနှင့် စတင်ခြင်းတို့ဖြင့် ဝန်ဆောင်မှုများကို စတင်ခြင်းနှင့် ရပ်တန့်ခြင်းတို့ကို လုပ်ဆောင်သည်။ Shepherd သည် ဝန်ဆောင်မှုများကြားတွင် ကွဲလွဲမှုများကို ရှာဖွေတွေ့ရှိပြီး ၎င်းတို့ကို တစ်ပြိုင်နက် လုပ်ဆောင်ခြင်းမှ တားဆီးပေးပါသည်။ ပရောဂျက်ကို ပင်မအစပြုစနစ် (init with PID 1) အဖြစ် နှစ်မျိုးလုံးအသုံးပြုနိုင်ပြီး အသုံးပြုသူတစ်ဦးချင်းစီ၏ နောက်ခံလုပ်ငန်းစဉ်များကို စီမံခန့်ခွဲရန် သီးခြားပုံစံတစ်ခု (ဥပမာ၊ tor၊ privoxy၊ mcron စသည်ဖြင့်) ကို အသုံးပြု၍ ရပိုင်ခွင့်များနှင့်အတူ လုပ်ဆောင်နိုင်သည်။ ဤအသုံးပြုသူများ။

အဓိက တီထွင်ဆန်းသစ်မှုများ-

  • ယာယီဝန်ဆောင်မှုများ (ယာယီ) ၏ သဘောတရားကို လုပ်ငန်းစဉ်ကို ရပ်စဲပြီးနောက် သို့မဟုတ် ပိတ်ပြီးနောက် ပြန်လည်စတင်မရနိုင်သော ပေါင်းစပ်ထားသော ဝန်ဆောင်မှုများအတွက် လိုအပ်နိုင်သည့် “stop” နည်းလမ်းကို ခေါ်ဆိုမှုကြောင့် ပြီးစီးပြီးနောက် အလိုအလျောက် ပိတ်ထားသည်။
  • inetd-like ဝန်ဆောင်မှုများကိုဖန်တီးရန် "make-inetd-constructor" လုပ်ငန်းစဉ်ကို ထည့်သွင်းထားသည်။
  • ကွန်ရက်လုပ်ဆောင်မှုအတွင်း (systemd socket activation style)၊ "make-systemd-constructor" လုပ်ထုံးလုပ်နည်းကို ကွန်ရက်လုပ်ဆောင်မှုအတွင်း အသက်သွင်းထားသည့် ဝန်ဆောင်မှုများကို ဖန်တီးရန်အတွက် ဝန်ဆောင်မှုများကို ဖန်တီးရန်။
  • နောက်ခံတွင် ဝန်ဆောင်မှုတစ်ခုစတင်ရန်အတွက် ထပ်လောင်းလုပ်ထုံးလုပ်နည်း - "start-in-the-background"။
  • ":supplementary-groups", "#:create-session" နှင့် "#:resource-limits" တို့ကို "make-forkexec-constructor" လုပ်ရိုးလုပ်စဉ်တွင် ထည့်သွင်းထားသည်။
  • PID ဖိုင်များကို စောင့်နေစဉ်တွင် ပိတ်ဆို့ခြင်းမရှိဘဲ လုပ်ဆောင်မှုကို ဖွင့်ထားသည်။
  • “#:log-file” ကန့်သတ်ဘောင်မပါသော ဝန်ဆောင်မှုများအတွက်၊ syslog သို့ output ကို ပေးဆောင်ပြီး #:log-file ကန့်သတ်ချက်ပါသည့် ဝန်ဆောင်မှုများအတွက်၊ မှတ်တမ်းကို အသံသွင်းသည့်အချိန်ကို ဖော်ပြသည့် သီးခြားဖိုင်တစ်ခုသို့ ရေးမှတ်ထားသည်။ အခွင့်အရေးမရသောသိုးထိန်းလုပ်ငန်းစဉ်မှမှတ်တမ်းများကို $XDG_DATA_DIR လမ်းညွှန်တွင် သိမ်းဆည်းထားသည်။
  • Guile 2.0 ဖြင့် တည်ဆောက်ခြင်းအတွက် ပံ့ပိုးမှုကို ရပ်ဆိုင်းလိုက်ပါပြီ။ Guile ဗားရှင်း 3.0.5-3.0.7 ကို အသုံးပြုသည့်အခါ ပြဿနာများကို ဖြေရှင်းပြီးဖြစ်သည်။
  • Fibers စာကြည့်တိုက် 1.1.0 နှင့်အထက် သည် ယခု အလုပ်လုပ်ရန် လိုအပ်ပါသည်။

source: opennet.ru

မှတ်ချက် Add