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

Վերջին նշանակալի թողարկման ձևավորումից երկու տարի անց հրապարակվեց ծառայության մենեջեր GNU Shepherd 0.9-ը (նախկինում 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 և այլն)՝ իրավունքներով կատարվող այս օգտվողներից:

Հիմնական նորամուծությունները.

  • Ժամանակավոր ծառայությունների հայեցակարգը (անցողիկ) իրականացվում է, ավտոմատ կերպով անջատվում է ավարտից հետո գործընթացի դադարեցման կամ «stop» մեթոդի կանչի պատճառով, որը կարող է պահանջվել սինթեզված ծառայությունների համար, որոնք չեն կարող վերագործարկվել անջատումից հետո:
  • Inetd-ի նման ծառայություններ ստեղծելու համար ավելացվել է «make-inetd-constructor» ընթացակարգը:
  • Ծառայություններ ստեղծելու համար, որոնք ակտիվանում են ցանցի գործունեության ընթացքում (systemd socket activation ոճով), ավելացվել է «make-systemd-constructor» ընթացակարգը:
  • Ծառայությունը հետին պլանում սկսելու համար ավելացվել է՝ «սկիզբը ֆոնին»:
  • «make-forkeexec-constructor» ընթացակարգին ավելացվել են «:supplementary-groups», «#:create-session» և «#:resource-limits» պարամետրերը:
  • Գործողությունը միացված է առանց արգելափակման PID ֆայլերի սպասելիս:
  • Առանց «#:log-file» պարամետրի ծառայությունների համար տրամադրվում է ելք դեպի syslog, իսկ #:log-file պարամետրով ծառայությունների համար գրանցամատյանը գրվում է առանձին ֆայլում՝ նշելով ձայնագրման ժամանակը: Չարտոնված հովիվ գործընթացի գրանցամատյանները պահվում են $XDG_DATA_DIR գրացուցակում:
  • Guile 2.0-ով կառուցելու աջակցությունը դադարեցվել է: Guile 3.0.5-3.0.7 տարբերակներն օգտագործելիս խնդիրները լուծվել են:
  • Այժմ անհրաժեշտ է աշխատել Fibers 1.1.0 կամ ավելի նոր գրադարանի համար:

Source: opennet.ru

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