launchd Resource

az Oldal szerkesztése A Chef repository-ban

ez az oldal a Chef Infra kliens forrásból származik code.To javasoljon változást, szerkessze az indítót.RB fájlt, és nyújtson be egy pull kérelmet a Chef Infra kliens repository.

minden Infra erőforrás oldal

használja a launchd erőforrást a rendszerszintű szolgáltatások (démonok) és a felhasználónkénti szolgáltatások (ügynökök) kezelésére a macOS platformon.

új Chef Infra kliens 12.8.

Syntax

a launchd erőforrás számára elérhető összes tulajdonság teljes szintaxisa a következő:

launchd 'name' do abandon_process_group true, false backup Integer, false cookbook String debug true, false disabled true, false # default value: false enable_globbing true, false enable_transactions true, false environment_variables Hash exit_timeout Integer group String, Integer hard_resource_limits Hash inetd_compatibility Hash init_groups true, false keep_alive true, false, Hash label String # default value: 'name' unless specified launch_events Hash launch_only_once true, false ld_group String limit_load_from_hosts Array limit_load_to_hosts Array limit_load_to_session_type Array, String low_priority_io true, false mach_services Hash mode String, Integer nice Integer on_demand true, false owner String, Integer path String plist_hash Hash process_type String program String program_arguments Array queue_directories Array root_directory String run_at_load true, false session_type String sockets Hash soft_resource_limits Array source String standard_error_path String standard_in_path String standard_out_path String start_calendar_interval Hash, Array start_interval Integer start_on_mount true, false throttle_interval Integer time_out Integer type String # default value: "daemon" umask Integer username String wait_for_debugger true, false watch_paths Array working_directory String action Symbol # defaults to :create if not specifiedend

ahol:

  • launchd az erőforrás.
  • name az erőforrás blokk neve.
  • action meghatározza, hogy a Chef Infra kliens mely lépéseket fogja megtenni a csomópont kívánt állapotba hozásához.
  • abandon_process_group, backup, cookbook, debug, disabled, enable_globbing, enable_transactions, environment_variables, exit_timeout, group, hard_resource_limits, inetd_compatibility, init_groups, keep_alive, label, launch_events, launch_only_once, ld_group, limit_load_from_hosts, limit_load_to_hosts, limit_load_to_session_type, low_priority_io, mach_services, mode, nice, on_demand, owner, path, plist_hash, process_type, program, program_arguments, queue_directories, root_directory, run_at_load, session_type, sockets, soft_resource_limits, source, standard_error_path, standard_in_path, standard_out_path, start_calendar_interval, start_interval, start_on_mount, throttle_interval, time_out, type, umask, username, wait_for_debugger, watch_paths, és working_directory az erőforrás számára elérhető tulajdonságok.

műveletek

a launchd erőforrás a következő műveletekkel rendelkezik:

:createalapértelmezett. Hozzon létre egy launchd tulajdonságlistát.:create_if_missinghozzon létre egy launchd tulajdonságlistát, ha még nem létezik.:deletelaunchd tulajdonságlista törlése. Ez letölt egy démont vagy ügynököt, ha be van töltve.:disablelaunchd tulajdonságlista letiltása.:enablehozzon létre egy launchd tulajdonságlistát, majd ellenőrizze, hogy engedélyezve van-e. Ha már létezik launchd tulajdonságlista, de nem egyezik, frissíti a tulajdonságlistát, hogy megfeleljen, majd újraindítja a démont vagy az ügynököt.:nothingez az erőforrásblokk csak akkor működik, ha egy másik erőforrás értesíti a műveletet. Az értesítés után ez az erőforrás-blokk azonnal futvagy sorban áll a Chef Infra kliens futtatásának végén.:restartindítsa újra a launchd által kezelt démont vagy ügynököt.

tulajdonságok

a launchd erőforrás a következő tulajdonságokkal rendelkezik:

abandon_process_groupRuby Type: true, false

ha egy feladat meghal, az összes fennmaradó folyamat ugyanazzal a folyamatazonosítóval futhat. Állítsa true értékre az összes fennmaradó folyamat megöléséhez.

backupRuby Type: Integer, false

a /var/chef/backup – ban tárolandó biztonsági mentések száma. Állítsafalse értékre, hogy megakadályozza a biztonsági mentések megőrzését.

cookbookRubin Típus: String

annak a szakácskönyvnek a neve, amelyben a forrásfájlok találhatók.

groupRuby Type:String, Integer

amikor a launchd root felhasználóként fut, a feladat futtatásához szükséges csoport.Ha a username tulajdonság meg van adva,de ez a tulajdonság nem, akkor ez az érték a felhasználó alapértelmezett csoportjára van beállítva.

labelRuby Type: String

a feladat egyedi azonosítója.

modeRuby Type: Integer, String | alapértelmezett érték:'0755'

idézett 3-5 karakterlánc, amely meghatározza az oktális módot. Példa: '755', '0755' vagy 00755.

ownerRubin Típus: Integer, String

olyan karakterlánc vagy azonosító,amely felhasználónév alapján azonosítja a csoport tulajdonosát, beleértve a teljesen minősített felhasználóneveket, például domain\user vagy[email protected]. Ha ez az érték nincs megadva, a meglévő tulajdonosok változatlanok maradnak, az új tulajdonos-hozzárendelések pedig az aktuális felhasználót használják(ha szükséges).

pathRuby Típus: String

a könyvtár elérési útja. Teljesen minősített útvonal használataajánlott, de nem mindig szükséges. Alapértelmezett érték: az erőforrásblokk nameértéke. További információkért lásd a fenti “szintaxis”részt.

plist_hashRubin Típusú: Hash

a launchd tulajdonságlista létrehozásához használt kulcsérték-Párok kivonata.

session_typeRuby Type: String

a létrehozandó launchd plist típusa. Lehetséges értékek: system (alapértelmezett) vagy user.

sourceRuby Type: String

a launchd tulajdonságlista elérési útja.

typeRuby Type: String

az erőforrás típusa. Lehetséges értékek: daemon (alapértelmezett), agent.

abandon_process_groupRuby Type: true, false

ha egy feladat meghal, az összes fennmaradó folyamat ugyanazzal a folyamatazonosítóval futhat. Állítsa true értékre az összes fennmaradó folyamat megöléséhez.

debugRubin Típusú: igaz, hamis

a naplómaszkot LOG_DEBUG értékre állítja ehhez a feladathoz.

disabledRuby Type: true, false | alapértelmezett érték:false

Tippek a launchctl számára, hogy ne küldje el ezt a feladatot a launchd-nek.

enable_globbingRuby Típus: igaz, hamis

frissítse a program argumentumait meghívás előtt.

enable_transactionsRuby Típus: igaz, hamis

nyomon követheti a folyamatban lévő tranzakciókat; ha nincs, akkor küldje el a SIGKILL jelet.

environment_variablesRuby Type: Hash

további környezeti változók beállítása a feladat futtatása előtt.

exit_timeoutRuby Type: Integer

az indítási idő (másodpercben) a SIGKILL jel küldése előtt.

hard_resource_limitsRuby Type: Hash

a hash erőforrás korlátokat kell kiszabni a munkát.

inetd_compatibilityRuby Type: Hash

megadja, hogy egy démon úgy fog-e futni, mintha ainetd – ből indult volna. Állítsa wait => true értékre a szabványos bemeneti, kimeneti, anderror fájlleírók átadásához. Állítsa wait => false értékre a acceptrendszerhívás meghívásához a feladat nevében, majd adja át a szabványos bemeneti,kimeneti és hibafájl-leírókat.

init_groupsRuby Type: true, false

adja meg, hogy a initgroups meghívásra kerül-e egy feladat futtatása előtt.

keep_aliveRubin Típus: true, false, Hash

egy feladat folyamatos futtatása (true), vagy a csomóponton lévő igények és feltételek engedélyezése annak meghatározására, hogy a feladat folyamatosan fut-e (false).

új A Chef Client-ben 12.14

launch_eventsRuby Type: Hash

adja meg a magasabb szintű eseménytípusokat, amelyeket igény szerinti eseményforrásként kell használni.

új A Chef Infra Client 15.1-ben

launch_only_onceRuby Típus: igaz, hamis

adja meg, hogy egy feladat csak egyszer futtatható-e. Állítsa ezt az értéket trueértékre, ha egy feladat nem indítható újra a gép teljes újraindítása nélkül.

limit_load_from_hostsRubin Típus: Array

olyan gazdagépek tömbje,amelyekre ez a konfigurációs fájl nem vonatkozik, azaz “alkalmazza ezt a konfigurációs fájlt minden olyan gazdagépre, amely nincs megadva ebben a tömbben”.

limit_load_to_hostsRuby Type: Array

gazdagépek tömbje, amelyre ez a konfigurációs fájl vonatkozik.

limit_load_to_session_typeRuby Type: Array, String

a munkamenet típusa(I), amelyre ez a konfigurációs fájl vonatkozik.

low_priority_ioRuby Type: true, false

adja meg, hogy a csomóponton lévő kernelnek ezt a démont alacsony prioritásnak kell-e tekintenie a fájlrendszer I/O során.

mach_servicesRuby Type: Hash

adja meg a bootstrap alrendszerben regisztrálandó szolgáltatásokat.

niceRuby Típus: Integer

a Program ütemezési prioritási értéke a -20és 20 közötti tartományban.

on_demandRuby Típus: igaz, hamis

tartsa életben a munkát. Csak a macOS 10.4-es (vagy korábbi) verziójára vonatkozik; az újabb verziókhoz használja a keep_alive értéket.

process_typeRuby Típus: String

a munka rendeltetése: Adaptive, Background, Interactive, vagy Standard.

programRuby Type: String

a execvp első argumentuma, jellemzően a végrehajtandó fájlhoz társított fájlnév. Ezt az értéket akkor kell megadni, ha aprogram_arguments nincs megadva, és fordítva.

program_argumentsRubin Típus: Tömb

a execvp második argumentuma. Ha program nincs megadva, akkor ezt a tulajdonságot meg kell adni, és úgy kell kezelni, mintha az első argumentum lenne.

queue_directoriesRuby Type: Array

nem üres könyvtárak tömbje, amelyek, ha módosulnak, egy feladat elindításához vezetnek.

root_directoryRuby Típus: String

chroot ebbe a könyvtárba, majd futtassa a feladatot.

run_at_loadRuby Type: true, false

indítson el egy feladatot egyszer (a betöltéskor).

socketsRuby Type: Hash

igény szerinti foglalatok kivonata, amelyek értesítik a launchd-t, amikor egy feladatot futtatni kell.

soft_resource_limitsRubin Típusú: Tömb

a hash erőforrás korlátokat kell kiszabni a munkát.

standard_error_pathRuby Type: String

az a fájl, amelyhez standard hiba (stderr) kerül elküldésre.

standard_in_pathRuby Type: String

az a fájl, amelyre a szabványos bemenetet (stdin) küldi.

standard_out_pathRuby Type: String

az a fájl, amelyre a szabványos kimenetet (stdout) küldi.

start_calendar_intervalRuby Type: Hash

Hash (hasonló a crontab – hez), amely meghatározza a naptár gyakoriságát, amikor egy feladat elindul. Például:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" } fog futni a munkát 8: 00 PM minden nap, hétfőtől péntekig, everymonth az év.

start_intervalRubin Típusú: Integer

az a gyakoriság (másodpercben), amelyen egy feladat elindul.

start_on_mountRuby Type: true, false

indítsa el a munkát minden fájlrendszer csatlakoztatásakor.

throttle_intervalRuby Type: Integer | Default Value:10

az a gyakoriság (másodpercben), amelyen a feladatok spawnolhatnak.

time_outRuby Type: Integer

az az időtartam (másodpercben), ameddig egy feladat tétlen lehet A timesout előtt. Ha nincs megadva érték, a rendszer a launchdwill alapértelmezett időtúllépési értékét fogja használni.

umaskRuby Type: Integer

egy decimális érték, amelyet át kell adni umask – nak egy feladat futtatása előtt.

usernameRubin Típusú: String

amikor a launchd root felhasználóként fut, akkor a felhasználó futtatja a feladatot.

wait_for_debuggerRuby Type: true, false

adja meg, hogy a launchd-nek van-e feladata, várja meg a hibakereső csatolását a kód végrehajtása előtt.

watch_pathsRuby Type: Array

olyan elérési utak tömbje, amelyek, ha módosulnak, egy feladat elindítását eredményezik.

working_directoryRuby Type: String

chdir ehhez a könyvtárhoz, majd futtassa a feladatot.

közös erőforrás-funkciók

a Chef-erőforrások közös tulajdonságokat, értesítéseket és erőforrásvédőket tartalmaznak.

közös tulajdonságok

a következő tulajdonságok közösek minden erőforrásnál:

compile_time

Ruby Típus: igaz, hamis / alapértelmezett érték: false

szabályozza azt a fázist, amely alatt az erőforrás fut a csomóponton. Állítsa true értékre, hogy futtassa az erőforrásgyűjtemény felépítése közben (a compile phase). Állítsa a false értéket a futtatáshoz, amíg a Chef Infra kliens konfigurálja a csomópontot (a converge phase).

ignore_failure

Ruby Típus: igaz, hamis,: csendes / alapértelmezett érték: false

folytassa a recept futtatását, ha egy erőforrás bármilyen okból meghibásodik. :quiet nem jeleníti meg a teljes verem nyomkövetését, és a recept továbbra is fut, ha egy erőforrás meghibásodik.

retries

Ruby Típus: egész / alapértelmezett érték: 0

a kivételek elkapására és az erőforrás újbóli megpróbálására tett kísérletek száma.

retry_delay

Ruby Típus: egész / alapértelmezett érték: 2

az újrapróbálkozási késleltetés (másodpercben).

sensitive

Ruby Típus: igaz, hamis / alapértelmezett érték: false

győződjön meg arról, hogy a chef InfraClient nem naplózza az érzékeny erőforrás-adatokat.

Értesítések

notifies

Rubin Típus: Szimbólum, ‘ Séf::Erőforrás ‘

egy erőforrás értesíthet egy másik erőforrást, hogy tegyen lépéseket, amikor az állapota megváltozik. Adja meg a 'resource' értéket, a :action értéket, amelyet az erőforrásnak meg kell tennie, majd a :timer értéket az adott művelethez. Egy erőforrás egynél több erőforrást is értesíthet; használjon notifies utasítást az értesítendő erőforrásokhoz.

ha a hivatkozott erőforrás nem létezik, hiba lép fel raised.In ellentétben, subscribes nem fog meghibásodni, ha a sourceresource nem található.

az időzítő meghatározza azt a pontot a Chef Infra kliens futása során, amelyen az anotification fut. A következő időzítők állnak rendelkezésre:

:before

meghatározza, hogy a bejelentett erőforráson végzett műveletet az értesítés helyén lévő erőforrásblokk feldolgozása előtt kell végrehajtani.

:delayed

alapértelmezett. Megadja, hogy egy értesítést sorba kell állítani, majd a Chef Infra kliens futtatásának végén kell végrehajtani.

:immediate,:immediately

meghatározza, hogy az értesítést azonnal le kell futtatni, a perresource értesítést kap.

a notifies szintaxisa:

notifies :action, 'resource', :timer

subscribes

Ruby Típus: szimbólum, ‘ szakács::Erőforrás ‘

egy erőforrás meghallgathat egy másik erőforrást, majd cselekedhet, ha a meghallgatott erőforrás állapota megváltozik. Adja meg a'resource' értéket, a :action értéket, majd a :timer műveletet.

vegye figyelembe, hogy a subscribes nem alkalmazza a megadott műveletet a meghallgatott forrásra – például:

file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root'endservice 'nginx' do subscribes :reload, 'file', :immediatelyend

ebben az esetben a subscribes tulajdonság újratölti a nginx szolgáltatást, amikor a/etc/nginx/ssl/example.crt alatt található tanúsítványfájl frissül. A subscribes nem módosítja magát a tanúsítványfájlt, csupán figyeli a fájl módosítását, és végrehajtja a :reload műveletet az erőforráshoz (ebben a példában nginx), amikor változást észlel.

ha a másik erőforrás nem létezik, az előfizetés nem okoz hibát. Ezt szembeállítjuk a notifies szigorúbb szemantikájával, amelyhibát vet fel, ha a másik erőforrás nem létezik.

az időzítő meghatározza azt a pontot a Chef Infra kliens futása során, amelyen az anotification fut. A következő időzítők állnak rendelkezésre:

:before

meghatározza, hogy a bejelentett erőforráson végzett műveletet az értesítés helyén lévő erőforrásblokk feldolgozása előtt kell végrehajtani.

:delayed

alapértelmezett. Megadja, hogy egy értesítést sorba kell állítani, majd a Chef Infra kliens futtatásának végén kell végrehajtani.

:immediate,:immediately

meghatározza, hogy az értesítést azonnal le kell futtatni, a perresource értesítést kap.

a subscribes szintaxisa:

subscribes :action, 'resource', :timer

Guards

a guard tulajdonság felhasználható egy csomópont állapotának értékelésére a Chef Infra kliens futtatásának végrehajtási szakaszában. Ennek az értékelésnek az eredményei alapján egy őr tulajdonságot használnak arra, hogy megmondják a Chef Infra kliensnek, hogy továbbra is végrehajtson egy erőforrást. A guard tulajdonság vagy string értéket, vagy Ruby blokk értéket fogad el:

  • a karakterlánc shell parancsként kerül végrehajtásra. Ha a parancs 0értéket ad vissza, az őr kerül alkalmazásra. Ha a parancs bármilyen más értéket ad vissza, akkora guard tulajdonság nem kerül alkalmazásra. Az apowershell_script karakterláncvédői a Windows PowerShell parancsokat futtatják, a mayreturn true pedig a 0mellett.
  • a blokk Ruby kódként kerül végrehajtásra, amelynek vagy truevagyfalse értéket kell visszaadnia. Ha a blokk true értéket ad vissza, a guard tulajdonság kerül alkalmazásra.Ha a blokk false értéket ad vissza, a guard tulajdonság nem kerül alkalmazásra.

a guard tulajdonság hasznos annak biztosítására, hogy egy erőforrás idempotens azáltal, hogy lehetővé teszi, hogy az erőforrás tesztelje a kívánt állapotot, amikor végrehajtják, majd ha a kívánt állapot jelen van, a Chef InfraClient számára, hogy ne tegyen semmit.

tulajdonságok

a következő tulajdonságok használhatók egy guard meghatározására, amelyet a Chef Infra kliens futtatásának végrehajtási fázisában értékelnek:

not_if

az erőforrás végrehajtásának megakadályozása, amikor a feltétel trueértéket ad vissza.

only_if

egy erőforrás csak akkor hajtható végre, ha a feltétel true értéket ad vissza.

példák

az alábbi példák különböző megközelítéseket mutatnak be a launchd erőforrás receptekben történő használatához:

hozzon létre egy indító démont egy szakácskönyvfájlból



+