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
, ogworking_directory
er egenskapene som er tilgjengelige for denne ressursen.
Handlinger
launchd-ressursen har følgende handlinger:
:create
Standard. Opprett en launchd-egenskapsliste.:create_if_missing
Opprett en launchd-egenskapsliste hvis den ikke allerede finnes.:delete
Slett en launchd-egenskapsliste. Dette vil losse en daemon eller agent, hvis lastet.:disable
Deaktiver en launchd-egenskapsliste.:enable
Opprett 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.:nothing
denne 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.:restart
Start en launchd managed daemon eller agent på nytt.
Egenskaper
launchd-ressursen har følgende egenskaper:
abandon_process_group
Ruby 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.
backup
Ruby Type: Heltall, false
antall sikkerhetskopier som skal holdes i /var/chef/backup
. Sett tilfalse
for å hindre at sikkerhetskopier blir holdt.
cookbook
Rubintype: String
navnet på kokeboken der kildefilene er plassert.
group
Ruby 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.
label
Rubintype: Streng
den unike identifikatoren for jobben.
mode
Rubintype: Heltall, Streng / Standardverdi:'0755'
en sitert 3-5 tegnstreng som definerer oktalmodus. Foreksempel: '755'
, '0755'
eller 00755
.
owner
Rubintype: 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).
path
Rubintype:Streng
banen til katalogen. Å bruke en fullt kvalifisert bane eranbefalt, men er ikke alltid nødvendig. Standardverdi: name
i ressursblokken. Se» Syntaks » ovenfor for merinformasjon.
plist_hash
Rubintype: Hash
En Hash av nøkkelverdipar som brukes til å opprette egenskapslisten launchd.
session_type
Ruby Type: String
typen launchd plist som skal opprettes. Mulige verdier: system
(standard) eller user
.
source
Rubintype:Streng
banen til egenskapslisten launchd.
type
Rubintype: Streng
typen ressurs. Mulige verdier: daemon
(standard), agent
.
abandon_process_group
Ruby 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.
debug
Rubintype: true, false
Setter loggmasken til LOG_DEBUG
for denne jobben.
disabled
Ruby Type: true, false | Standardverdi:false
Hint til launchctl
for ikke å sende denne jobben til launchd.
enable_globbing
Rubintype: sann,usann
Oppdater programargumenter før påkalling.
enable_transactions
Rubintype: sann, usann
Spor pågående transaksjoner; hvis ingen, send signalet SIGKILL
.
environment_variables
Ruby Type:Hash
Flere miljøvariabler som skal angis før du kjører en jobb.
exit_timeout
Ruby Type: Heltall
tiden (i sekunder) launchd venter før du sender et SIGKILL
signal .
hard_resource_limits
Ruby Type: Hash
En Hash av ressursgrenser som skal pålegges en jobb.
inetd_compatibility
Ruby 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 accept
på vegne av jobben, og send deretter standard inndata, utdata og feilfilbeskrivelser.
init_groups
Rubintype: true, false
Angi om initgroups
kalles før du kjører en jobb.
keep_alive
Rubintype: 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_events
Ruby 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_once
Ruby 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_hosts
Rubintype: 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_hosts
Ruby Type: Array
en rekke verter som denne konfigurasjonsfilen gjelder for.
limit_load_to_session_type
Rubintype: Matrise, Streng
økttypen (e) som denne konfigurasjonsfilen gjelder for.
low_priority_io
Ruby 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.
nice
Ruby Type: Heltall
prioritetsverdien for programplanlegging i området -20
til 20
.
on_demand
Rubintype: 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_type
Ruby Type: String
det tiltenkte formålet med jobben: Adaptive
, Background
, Interactive
, eller Standard
.
program
Ruby 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_arguments
Rubintype: 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_directories
Ruby Type: Array
en rekke ikke-tomme kataloger som, hvis noen er endret, vil føre til at en jobb startes.
root_directory
Rubintype: Streng
chroot
til denne katalogen, og kjør deretter jobben.
run_at_load
Ruby Type: true, false
Start en jobb en gang (når den er lastet).
sockets
Ruby Type:Hash
En Hash av on-demand sockets som varsler launchd når en jobb skal kjøres.
soft_resource_limits
Rubintype: Matrise
En Hash av ressursgrenser som skal pålegges en jobb.
standard_error_path
Rubintype: Streng
filen som standardfeil (stderr
) sendes til.
standard_in_path
Rubintype: Streng
filen som standardinngang (stdin
) sendes til.
standard_out_path
Rubintype: Streng
filen som standardutgang (stdout
) sendes til.
start_calendar_interval
Rubintype: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_interval
Rubintype: Heltall
frekvensen (i sekunder) der en jobb startes.
start_on_mount
Ruby Type: true,false
Start en jobb hver gang et filsystem er montert.
throttle_interval
Ruby Type: Heltall / Standardverdi:10
frekvensen (i sekunder) der jobber får lov til å gyte.
time_out
Ruby 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.
umask
Rubintype:Heltall
en desimalverdi som skal overføres til umask
før du kjører en jobb.
username
Rubintype: String
når launchd kjøres som rotbruker, vil brukeren kjøre jobben som.
wait_for_debugger
Ruby Type: true, false
Angi om launchd har en jobb vent på en debugger å legge ved før du kjører kode.
watch_paths
Ruby Type: Array
en rekke baner som, hvis noen er endret, vil føre til at en jobb startes.
working_directory
Rubintype: 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 mayreturntrue
i tillegg til0
. - en blokk utføres Som Rubinkode som må returnere enten
true
ellerfalse
. 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