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:
-
launchddet er ressursen. -
nameer navnet gitt til ressursblokken. -
actionidentifiserer 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, ogworking_directoryer 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 elleruser@domain. 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 mayreturntruei tillegg til0. - en blokk utføres Som Rubinkode som må returnere enten
trueellerfalse. Hvis blokken returnerertrue, brukes egenskapen guard.Hvis blokken returnererfalse, 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