launchd Ressurs

Rediger denne siden i Chef repository

Denne siden er generert fra Chef Infra Client kilde code.To foreslå en endring, rediger launchd.rb fil og sende inn en pull forespørsel Til Chef Infra Client repository.

Alle Infra-ressurser-siden

bruk launchd-ressursen til å administrere systemomfattende tjenester (daemoner) og tjenester per bruker (agenter) på macOS-plattformen.

Nytt I Chef Infra Klient 12.8.

Syntaks

den fullstendige syntaksen for alle egenskapene som er tilgjengelige for launchd-ressursen, er:

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

hvor:

  • launchd det er ressursen.
  • name er navnet gitt til ressursblokken.
  • action identifiserer hvilke trinn Chef Infra Client vil ta for å bringe noden til ønsket tilstand.
  • 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, og working_directory er egenskapene som er tilgjengelige for denne ressursen.

Handlinger

launchd-ressursen har følgende handlinger:

:createStandard. Opprett en launchd-egenskapsliste.:create_if_missingOpprett en launchd-egenskapsliste hvis den ikke allerede finnes.:deleteSlett en launchd-egenskapsliste. Dette vil losse en daemon eller agent, hvis lastet.:disableDeaktiver en launchd-egenskapsliste.:enableOpprett en egenskapsliste for launchd, og kontroller deretter at den er aktivert. Hvis det allerede finnes en launchd-egenskapsliste, men den ikke samsvarer, oppdateres egenskapslisten til å samsvare, og deretter starter nissen eller agenten på nytt.:nothingdenne ressursblokken virker ikke med mindre den varsles av en annen ressurs totake-handling. Når varslet, kjører denne ressursblokken enten umiddelbart eller er i kø for å kjøre på slutten av En Chef Infra Client run.:restartStart en launchd managed daemon eller agent på nytt.

Egenskaper

launchd-ressursen har følgende egenskaper:

abandon_process_groupRuby Type: true, false

hvis en jobb dør, kan alle gjenværende prosesser med samme PROSESS-ID fortsette å kjøre. Sett til true for å drepe alle gjenværende prosesser.

backupRuby Type: Heltall, false

antall sikkerhetskopier som skal holdes i /var/chef/backup. Sett tilfalse for å hindre at sikkerhetskopier blir holdt.

cookbookRubintype: String

navnet på kokeboken der kildefilene er plassert.

groupRuby Type: String, Heltall

når launchd kjøres som rotbruker, vil gruppen kjøre jobben som.Hvis egenskapen username er angitt, og denne egenskapen ikke er,settes denne verdien til standardgruppen for brukeren.

labelRubintype: Streng

den unike identifikatoren for jobben.

modeRubintype: Heltall, Streng / Standardverdi:'0755'

en sitert 3-5 tegnstreng som definerer oktalmodus. Foreksempel: '755', '0755' eller 00755.

ownerRubintype: Heltall, Streng

en streng ELLER ID som identifiserer gruppeeieren etter brukernavn, inkludert fullt kvalifiserte brukernavn som domain\user eller[email protected]. Hvis denne verdien ikke er angitt, eksisterende eiereforbli uendret og nye eiertildelinger bruker gjeldende bruker (når det er nødvendig).

pathRubintype:Streng

banen til katalogen. Å bruke en fullt kvalifisert bane eranbefalt, men er ikke alltid nødvendig. Standardverdi: namei ressursblokken. Se» Syntaks » ovenfor for merinformasjon.

plist_hashRubintype: Hash

En Hash av nøkkelverdipar som brukes til å opprette egenskapslisten launchd.

session_typeRuby Type: String

typen launchd plist som skal opprettes. Mulige verdier: system(standard) eller user.

sourceRubintype:Streng

banen til egenskapslisten launchd.

typeRubintype: Streng

typen ressurs. Mulige verdier: daemon(standard), agent.

abandon_process_groupRuby Type: true, false

hvis en jobb dør, kan alle gjenværende prosesser med samme PROSESS-ID fortsette å kjøre. Sett til true for å drepe alle gjenværende prosesser.

debugRubintype: true, false

Setter loggmasken til LOG_DEBUG for denne jobben.

disabledRuby Type: true, false | Standardverdi:false

Hint til launchctl for ikke å sende denne jobben til launchd.

enable_globbingRubintype: sann,usann

Oppdater programargumenter før påkalling.

enable_transactionsRubintype: sann, usann

Spor pågående transaksjoner; hvis ingen, send signalet SIGKILL.

environment_variablesRuby Type:Hash

Flere miljøvariabler som skal angis før du kjører en jobb.

exit_timeoutRuby Type: Heltall

tiden (i sekunder) launchd venter før du sender et SIGKILL signal .

hard_resource_limitsRuby Type: Hash

En Hash av ressursgrenser som skal pålegges en jobb.

inetd_compatibilityRuby Type: Hash

Angir om en demon forventer å bli kjørt som om den ble lansert fra inetd. Sett til wait => true for å passere standard inngang, utgang, ogfeil filbeskrivelser. Sett til wait => false for å ringe systemkallet acceptpå vegne av jobben, og send deretter standard inndata, utdata og feilfilbeskrivelser.

init_groupsRubintype: true, false

Angi om initgroups kalles før du kjører en jobb.

keep_aliveRubintype: sann, usann,Hash

Holder en jobb løpende (sann) eller tillater krav og betingelser på noden for å avgjøre om jobben fortsetter å kjøre (false).

Nytt I Chef Client 12.14

launch_eventsRuby Type:Hash

Angi hendelsestyper på høyere nivå som skal brukes som start – on-demand-hendelseskilder.

Nytt I Chef Infra Client 15.1

launch_only_onceRuby Type: true, false

Angi Om en jobb kan kjøres bare en gang. Sett denne verdien til true hvis en jobb ikke kan startes på nytt uten en fullstendig omstart av maskinen.

limit_load_from_hostsRubintype: Array

en rekke verter som denne konfigurasjonsfilen ikke gjelder for, dvs. «bruk denne konfigurasjonsfilen til alle verter som ikke er angitt i denne matrisen».

limit_load_to_hostsRuby Type: Array

en rekke verter som denne konfigurasjonsfilen gjelder for.

limit_load_to_session_typeRubintype: Matrise, Streng

økttypen (e) som denne konfigurasjonsfilen gjelder for.

low_priority_ioRuby Type: true, false

Angi om kjernen på noden bør vurdere denne nissen å være lav prioritet under filsystemet i / O.

mach_services

Ruby Type:Hash

Angi tjenester som skal registreres med bootstrap delsystem.

niceRuby Type: Heltall

prioritetsverdien for programplanlegging i området -20 til 20.

on_demandRubintype: sann, usann

Hold en jobb i live. Gjelder bare for macOS versjon 10.4 (og tidligere); bruk keep_alive i stedet for nyere versjoner.

process_typeRuby Type: String

det tiltenkte formålet med jobben: Adaptive, Background, Interactive, eller Standard.

programRuby Type: String

det første argumentet for execvp, vanligvis filnavnet tilknyttet filen som skal utføres. Denne verdien må angis hvisprogram_arguments ikke er angitt, og omvendt.

program_argumentsRubintype: Array

det andre argumentet til execvp. Hvis program ikke er angitt, må thisproperty angis og håndteres som om det var det første argumentet.

queue_directoriesRuby Type: Array

en rekke ikke-tomme kataloger som, hvis noen er endret, vil føre til at en jobb startes.

root_directoryRubintype: Streng

chroot til denne katalogen, og kjør deretter jobben.

run_at_loadRuby Type: true, false

Start en jobb en gang (når den er lastet).

socketsRuby Type:Hash

En Hash av on-demand sockets som varsler launchd når en jobb skal kjøres.

soft_resource_limitsRubintype: Matrise

En Hash av ressursgrenser som skal pålegges en jobb.

standard_error_pathRubintype: Streng

filen som standardfeil (stderr) sendes til.

standard_in_pathRubintype: Streng

filen som standardinngang (stdin) sendes til.

standard_out_pathRubintype: Streng

filen som standardutgang (stdout) sendes til.

start_calendar_intervalRubintype:Hash

En Hash (lik crontab) som definerer kalenderfrekvensen påsom en jobb er startet. For eksempel:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" } vil kjøre en jobb på 8: 00 PM hver dag, mandag til fredag, everymonth av året.

start_intervalRubintype: Heltall

frekvensen (i sekunder) der en jobb startes.

start_on_mountRuby Type: true,false

Start en jobb hver gang et filsystem er montert.

throttle_intervalRuby Type: Heltall / Standardverdi:10

frekvensen (i sekunder) der jobber får lov til å gyte.

time_outRuby Type: Heltall

tiden (i sekunder) en jobb kan være inaktiv før den timesout. Hvis ingen verdi er angitt, brukes standard timeout-verdien for launchdwill.

umaskRubintype:Heltall

en desimalverdi som skal overføres til umask før du kjører en jobb.

usernameRubintype: String

når launchd kjøres som rotbruker, vil brukeren kjøre jobben som.

wait_for_debuggerRuby Type: true, false

Angi om launchd har en jobb vent på en debugger å legge ved før du kjører kode.

watch_pathsRuby Type: Array

en rekke baner som, hvis noen er endret, vil føre til at en jobb startes.

working_directoryRubintype: Streng

chdir til denne katalogen, og kjør deretter jobben.

Felles Ressursfunksjonalitet

Kokkressurser inkluderer vanlige egenskaper, varsler og ressursvakter.

Vanlige Egenskaper

følgende egenskaper er felles for alle ressurser:

compile_time

Rubintype: sann, usann / Standardverdi: false

Kontroller fasen der ressursen kjøres på noden. Sett til true for å kjøre mens ressurssamlingen bygges (compile phase). Sett til false for å kjøre Mens Chef Infra Client konfigurerer noden (converge phase).

ignore_failure

Rubintype: sann, usann,: stille | Standardverdi: false

Fortsett å kjøre en oppskrift hvis en ressurs mislykkes av en eller annen grunn. :quiet viser ikke full stakksporing, og oppskriften fortsetter å kjøre hvis en ressurs mislykkes.

retries

Rubintype: Heltall | Standardverdi: 0

antall forsøk på å fange unntak og prøv ressursen på nytt.

retry_delay

Rubintype: Heltall / Standardverdi: 2

prøv forsinkelsen på nytt (i sekunder).

sensitive

Rubintype: sann, usann / Standardverdi: false

Kontroller at sensitive ressursdata ikke logges av Chef InfraClient.

Varsler

notifies

Rubintype: Symbol, ‘ Kokk::Ressurs ‘

en ressurs kan varsle en annen ressurs til å iverksette tiltak når statechanges. Angi en 'resource', :action som resourceshould ta, og deretter :timer for denne handlingen. En ressurs maynotify mer enn en ressurs; bruk en notifies – setning for eachresource å bli varslet.

hvis den refererte ressursen ikke finnes, er det en feil raised.In kontrast, subscribes vil ikke mislykkes hvis sourceresource ikke er funnet.

en timer angir punktet under En Chef Infra Client run hvor salvelse kjøres. Følgende tidtakere er tilgjengelige:

:before

Angir at handlingen på en varslet ressurs skal kjøres før du behandler ressursblokken der varselet er plassert.

:delayed

Standard. Angir at et varsel skal stå i kø, og deretter utføres på slutten av En Chef Infra-Klientkjøring.

:immediate,:immediately

Angir at et varsel skal kjores umiddelbart, varslet perresource.

syntaksen for notifies er:

notifies :action, 'resource', :timer

subscribes

Ruby Type: Symbol, ‘ Kokk::Ressurs ‘

en ressurs kan lytte til en annen ressurs, og deretter handle hvis tilstanden til ressursen som blir lyttet til endres. Angi en'resource', :action som skal tas, og deretter :timer for den handlingen.

Merk at subscribes ikke bruker den angitte handlingen til theresource som den lytter til – for eksempel:

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

i dette tilfellet oppdateres egenskapen subscribes nginx servicewhenever sertifikatfilen, som ligger under/etc/nginx/ssl/example.crt. subscribes gjør ikke noen endringer i sertifikatfilen selv, det lytter bare etter en changeto filen, og utfører handlingen :reload for ressursen (i thisexample nginx) når en endring oppdages.

hvis den andre ressursen ikke finnes, vil abonnementet ikke øke anerror. Kontrast dette med den strengere semantikken til notifies, som vil øke en feil hvis den andre ressursen ikke eksisterer.

en timer angir punktet under En Chef Infra Client run hvor salvelse kjøres. Følgende tidtakere er tilgjengelige:

:before

Angir at handlingen på en varslet ressurs skal kjøres før du behandler ressursblokken der varselet er plassert.

:delayed

Standard. Angir at et varsel skal stå i kø, og deretter utføres på slutten av En Chef Infra-Klientkjøring.

:immediate,:immediately

Angir at et varsel skal kjores umiddelbart, varslet perresource.

syntaksen for subscribes er:

subscribes :action, 'resource', :timer

Vakter

en guard-egenskap kan brukes til å evaluere tilstanden til en node under utførelsesfasen av En Chef Infra-Klientkjøring. Basert på resultatene av thisevaluation, er en vakt eiendom så brukes til å fortelle Chef Infra Client ifit skal fortsette å utføre en ressurs. En guard-egenskap aksepterer enten strengverdi eller En Rubinblokkverdi:

  • en streng utføres som en shell-kommando. Hvis kommandoen returnerer 0, brukes beskyttelsen. Hvis kommandoen returnerer en annen verdi, davaktegenskapen er ikke brukt. Strengvakter i apowershell_script kjører Windows PowerShell-kommandoer og mayreturn true i tillegg til 0.
  • en blokk utføres Som Rubinkode som må returnere enten true eller false. Hvis blokken returnerer true, brukes egenskapen guard.Hvis blokken returnerer false, brukes ikke egenskapen guard.

en guard-egenskap er nyttig for å sikre at en ressurs er idempotent ved å tillate at ressursen skal teste for ønsket tilstand som den er utført, og deretter Hvis ønsket tilstand er til stede, For Chef InfraClient å ikke gjøre noe.

Egenskaper

følgende egenskaper kan brukes til å definere en vakt som evaluert under utførelsesfasen Av En Chef Infra Client run:

not_if

Forhindre at en ressurs kjøres når betingelsen returnerer true.

only_if

Tillat at en ressurs bare kjøres hvis betingelsen returnerer true.

Eksempler

følgende eksempler viser ulike tilnærminger for bruk av launchd-ressursen i oppskrifter:

Lag En Lanseringsdemon fra en kokebokfil



+