GNU Shepherd 0.9.2 init համակարգի թողարկում

Հրապարակվել է ծառայության մենեջեր GNU Shepherd 0.9.2 (նախկինում՝ dmd), որը մշակվում է GNU Guix System բաշխման մշակողների կողմից՝ որպես այլընտրանք SysV-init սկզբնավորման համակարգի, որն աջակցում է կախվածությունները։ Shepherd-ի կառավարման դեյմոնը և կոմունալ ծրագրերը գրված են Guile լեզվով (Scheme լեզվի իրականացումներից մեկը), որն օգտագործվում է նաև ծառայությունների գործարկման պարամետրեր և պարամետրեր սահմանելու համար: Shepherd-ն արդեն օգտագործվում է GuixSD GNU/Linux բաշխման մեջ և ուղղված է նաև GNU/Hurd-ում օգտագործմանը, բայց կարող է գործարկվել POSIX-ին համապատասխանող ցանկացած ՕՀ-ով, որի համար հասանելի է Guile լեզուն:

Shepherd-ը կատարում է ծառայություններ սկսելու և դադարեցնելու աշխատանքը՝ հաշվի առնելով ծառայությունների միջև փոխհարաբերությունները, դինամիկ կերպով բացահայտելով և սկսելով ծառայությունները, որոնցից կախված է ընտրված ծառայությունը: Shepherd-ը նաև աջակցում է ծառայությունների միջև կոնֆլիկտների հայտնաբերմանը և դրանց միաժամանակ գործարկման կանխմանը: Նախագիծը կարող է օգտագործվել և՛ որպես հիմնական սկզբնավորման համակարգ (init՝ PID 1-ով), և՛ առանձին ձևով՝ առանձին օգտատերերի ֆոնային գործընթացները կառավարելու համար (օրինակ՝ գործարկել tor, privoxy, mcron և այլն)՝ իրավունքներով կատարվող այս օգտվողներից:

Փոփոխությունների թվում.

  • Shepherd-ում օգտագործվող ֆայլերի նկարագրիչները այժմ նշվում են O_CLOEXEC (close-on-exec) դրոշով, այլ ոչ թե անմիջապես փակվում են exec-հրամանի կատարման ժամանակ, ինչը թույլ է տալիս բռնակները փոխանցել exec-հրամանի կողմից անուղղակիորեն սկսված ծառայություններին:
  • Հաճախորդի միացումներն այժմ մշակվում են ոչ արգելափակող եղանակով, ինչը թույլ չի տալիս հովիվին կախել թերի հրաման ուղարկելիս:
  • Ապահովում է, որ գրացուցակ ստեղծվել է «log-file» կարգավորումներում սահմանված տեղեկամատյանների համար, եթե այն գոյություն չունի:

Source: opennet.ru

Добавить комментарий