redigera den här sidan i Chef repository
den här sidan genereras från Chef Infra Client source code.To föreslå en ändring, redigera launchd.rb-fil och skicka in en pull-begäran till Chef Infra Client repository.
alla Infra-resurser sida
använd launchd-resursen för att hantera systemomfattande tjänster (demoner) och tjänster per användare (agenter) på macOS-plattformen.
nytt i Chef Infra klient 12.8.
Syntax
den fullständiga syntaxen för alla egenskaper som är tillgängliga för launchd-resursen är:
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
där:
-
launchd
är resursen. -
name
är namnet på resursblocket. -
action
identifierar vilka steg Chef Infra Client tar för att få noden till önskat tillstånd. -
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
, ochworking_directory
är de egenskaper som är tillgängliga för den här resursen.
åtgärder
launchd-resursen har följande åtgärder:
:create
standard. Skapa en launchd-egenskapslista.:create_if_missing
skapa en egenskapslista för launchd om den inte redan finns.:delete
ta bort en egenskapslista för launchd. Detta kommer att lossa en demon eller agent, om den laddas.:disable
inaktivera en launchd-egenskapslista.:enable
skapa en egenskapslista för launchd och se till att den är aktiverad. Om en egenskapslista för launchd redan finns, men inte matchar, uppdaterar egenskapslistan så att den matchar och startar sedan om demonen eller agenten.:nothing
det här resursblocket fungerar inte om det inte meddelas av en annan resurs för att vidta åtgärder. En gång anmäld körs detta resursblock antingen omedelbarteller står i kö för att köras i slutet av en Chef Infra Client run.:restart
starta om en launchd-hanterad Demon eller agent.
egenskaper
launchd-resursen har följande egenskaper:
abandon_process_group
Ruby Type: true, false
om ett jobb dör kan alla återstående processer med samma process-ID fortsätta att köras. Ställ in på true för att döda alla återstående processer.
backup
Ruby Typ: heltal, false
antalet säkerhetskopior som ska hållas i /var/chef/backup
. Ställ infalse
för att förhindra att säkerhetskopior sparas.
cookbook
Ruby Typ: String
namnet på kokboken där källfilerna finns.
group
Ruby Typ: Sträng, heltal
när launchd körs som root-användare, gruppen för att köra jobbet som.Om egenskapen username
anges och den här egenskapen inte är,är detta värde inställt på standardgruppen för användaren.
label
Ruby Typ: Sträng
den unika identifieraren för jobbet.
mode
Ruby Typ: heltal, sträng / standardvärde:'0755'
en citerad 3-5 teckensträng som definierar oktalt läge. Forexempel: '755'
, '0755'
eller 00755
.
owner
Ruby Typ: Heltal, sträng
en sträng eller ett ID som identifierar gruppägaren med användarnamn,inklusive fullständigt kvalificerade användarnamn som domain\user
elleruser@domain
. Om detta värde inte anges, befintliga ägareförbli oförändrad och nya ägartilldelningar använder den aktuella användaren(vid behov).
path
Ruby Typ: Sträng
sökvägen till katalogen. Att använda en fullt kvalificerad sökväg ärrekommenderas, men krävs inte alltid. Standardvärde: name
i resursblocket. Se avsnittet” Syntax ” ovan för merinformation.
plist_hash
Ruby Typ: Hash
en Hash med nyckelvärdespar som används för att skapa egenskapslistan launchd.
session_type
Ruby Typ: Sträng
den typ av launchd plist som ska skapas. Möjliga värden: system
(standard) eller user
.
source
Ruby Typ: Sträng
sökvägen till egenskapslistan launchd.
type
Ruby Typ: Sträng
typen av resurs. Möjliga värden: daemon
(standard), agent
.
abandon_process_group
Ruby Type: true, false
om ett jobb dör, alla återstående processer med samma process ID kanske hålls igång. Ställ in på true för att döda alla återstående processer.
debug
Ruby Typ: true, false
ställer in loggmasken till LOG_DEBUG
för det här jobbet.
disabled
Ruby Typ: sant, falskt / standardvärde:false
tips till launchctl
för att inte skicka det här jobbet till launchd.
enable_globbing
Ruby Typ: sant, falskt
uppdatera programargument före anrop.
enable_transactions
Ruby Typ: true, false
spåra pågående transaktioner; om ingen, skicka sedan SIGKILL
– signalen.
environment_variables
Ruby Typ: Hash
ytterligare miljövariabler att ställa in innan du kör ett jobb.
exit_timeout
Ruby Typ: heltal
den tid (i sekunder) launchd väntar innan du skickar en SIGKILL
signal.
hard_resource_limits
Ruby Typ: Hash
en Hash av resursgränser som ska införas på ett jobb.
inetd_compatibility
Ruby Type: Hash
Anger om en demon förväntar sig att köras som om den lanserades fråninetd
. Ställ in på wait => true
för att passera standard input, output, anderror filbeskrivningar. Ställ in wait => false
för att anropa accept
systemanropet på uppdrag av jobbet och skicka sedan standardinmatnings -, utdata-och felfilbeskrivningar.
init_groups
Ruby Type: true, false
ange om initgroups
anropas innan du kör ett jobb.
keep_alive
Ruby Typ: sant, falskt, Hash
håll ett jobb igång kontinuerligt (sant) eller tillåta efterfrågan och villkor på noden för att avgöra om jobbet fortsätter att köras (false
).
nytt i Chef Client 12.14
launch_events
Ruby Typ: Hash
ange händelsetyper på högre nivå som ska användas som start-on-demand-händelsekällor.
nytt i Chef Infra Client 15.1
launch_only_once
Ruby Typ: true, false
ange om ett jobb kan köras bara en gång. Ställ in det här värdet till true
om ett jobb inte kan startas om utan en fullständig omstart av datorn.
limit_load_from_hosts
Ruby Typ: Array
en array av värdar som denna konfigurationsfilen inte gäller, dvs ”tillämpa denna konfigurationsfilen till alla värdar som inte anges i denna array”.
limit_load_to_hosts
Ruby Type: Array
en array av värdar som denna konfigurationsfilen gäller.
limit_load_to_session_type
Ruby Type: Array, String
den sessionstyp(er) som denna konfigurationsfil gäller.
low_priority_io
Ruby Type: true, false
ange om kärnan på noden ska betrakta den här demonen som låg prioritet under filsystemet I / O.
mach_services
Ruby Type: Hash
ange tjänster som ska registreras med bootstrap-delsystemet.
nice
Ruby Typ: heltal
program schemaläggning prioritetsvärde i intervallet -20
till 20
.
on_demand
Ruby Typ: sant, falskt
håll ett jobb vid liv. Gäller endast macOS version 10.4 (och tidigare);använd keep_alive
istället för nyare versioner.
process_type
Ruby Typ: Sträng
det avsedda syftet med jobbet: Adaptive
, Background
, Interactive
, eller Standard
.
program
Ruby Type: String
det första argumentet för execvp
, vanligtvis filnamnet associerat med filen som ska köras. Detta värde måste anges omprogram_arguments
inte anges och vice versa.
program_arguments
Ruby Typ: Array
det andra argumentet för execvp
. Om program
inte anges, måste denna egenskap anges och kommer att hanteras som om det var det första argumentet.
queue_directories
Ruby Type: Array
en array av icke-tomma kataloger som, om någon ändras, kommer att orsaka ett jobb som ska startas.
root_directory
Ruby Typ: Sträng
chroot
till den här katalogen och kör sedan jobbet.
run_at_load
Ruby Type: true, false
starta ett jobb en gång (när det laddas).
sockets
Ruby Typ: Hash
en Hash av on-demand uttag som meddelar launchd när ett jobb ska köras.
soft_resource_limits
Ruby Typ: Array
en Hash av resursgränser som ska införas på ett jobb.
standard_error_path
Ruby Typ: Sträng
filen till vilken standardfel (stderr
) skickas.
standard_in_path
Ruby Typ: Sträng
filen till vilken standardinmatning (stdin
) skickas.
standard_out_path
Ruby Typ: Sträng
filen till vilken standardutmatning (stdout
) skickas.
start_calendar_interval
Ruby Typ: Hash
en Hash (liknande crontab
) som definierar kalenderfrekvensen vidvilket ett jobb startas. Till exempel:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" }
kommer att köra ett jobb på 8: 00 PM varje dag, måndag till fredag, varje månad på året.
start_interval
Ruby Typ: Heltal
frekvensen (i sekunder) vid vilken ett jobb startas.
start_on_mount
Ruby Type: true, false
starta ett jobb varje gång ett filsystem är monterat.
throttle_interval
Ruby Typ: heltal / standardvärde:10
frekvensen (i sekunder) vid vilken jobb får leka.
time_out
Ruby Typ: heltal
hur lång tid (i sekunder) ett jobb kan vara inaktiv innan det timesout. Om inget värde anges kommer standardvärdet för timeout för launchd att användas.
umask
Ruby Typ: heltal
ett decimalvärde som ska skickas till umask
innan du kör ett jobb.
username
Ruby Typ: String
när launchd körs som root-användare, användaren att köra jobbet som.
wait_for_debugger
Ruby Type: true, false
ange om launchd har ett jobb vänta på en debugger att bifoga innan du kör kod.
watch_paths
Ruby Type: Array
en rad sökvägar som, om någon ändras, kommer att få ett jobb att startas.
working_directory
Ruby Typ: Sträng
chdir
till den här katalogen och kör sedan jobbet.
gemensam Resursfunktionalitet
Kockresurser inkluderar vanliga egenskaper, meddelanden och resursskydd.
gemensamma egenskaper
följande egenskaper är gemensamma för varje resurs:
compile_time
Ruby Typ: sant, falskt / standardvärde: false
kontrollera fasen under vilken resursen körs på noden. Ställ in true för att köra medan resurssamlingen byggs (compile phase
). Ställ in false för att köra medan Chef Infra Client konfigurerar noden (converge phase
).
ignore_failure
Ruby Typ: sant, falskt,: tyst / standardvärde: false
Fortsätt köra ett recept om en resurs misslyckas av någon anledning. :quiet
visar inte hela stackspåret och receptet fortsätter att köras om en resurs misslyckas.
retries
Ruby Typ: heltal / standardvärde: 0
antalet försök att fånga undantag och försöka igen resursen.
retry_delay
Ruby Typ: heltal / standardvärde: 2
försök igen fördröjning (i sekunder).
sensitive
Ruby Typ: sant, falskt / standardvärde: false
se till att känsliga resursdata inte loggas av Chef InfraClient.
Meddelanden
notifies
Ruby Typ: Symbol, ’ Kock::Resurs ’
en resurs kan meddela en annan resurs att vidta åtgärder när dess tillståndsändringar. Ange 'resource'
, :action
som resourceshould ta och sedan :timer
för den åtgärden. En resurs maynotify mer än en resurs; använd en notifies
– sats för varje resurs som ska meddelas.
om den refererade resursen inte finns, är ett fel raised.In kontrast, subscribes
kommer inte att misslyckas om sourceresource inte hittas.
en timer anger den punkt under en Chef Infra klient kör där anotification körs. Följande timers är tillgängliga:
:before
anger att åtgärden på en anmäld resurs ska köras innan du bearbetar resursblocket där meddelandet finns.
:delayed
standard. Anger att en anmälan ska köas upp och sedanutförs i slutet av en Chef Infra Client run.
:immediate
,:immediately
anger att en anmälan ska köras omedelbart, perresource meddelas.
syntaxen för notifies
är:
notifies :action, 'resource', :timer
subscribes
Ruby Typ: Symbol, ’ kock::Resurs ’
en resurs kan lyssna på en annan resurs och sedan vidta åtgärder om tillståndet för resursen som lyssnas på ändras. Ange'resource'
, :action
som ska tas och sedan :timer
för den åtgärden.
Observera att subscribes
inte tillämpar den angivna åtgärden på den källa som den lyssnar på – till exempel:
file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root'endservice 'nginx' do subscribes :reload, 'file', :immediatelyend
i det här fallet laddar egenskapen subscribes
om tjänsten nginx
när dess certifikatfil, som finns under/etc/nginx/ssl/example.crt
, uppdateras. subscribes
gör inga ändringar i själva certifikatfilen, den lyssnar bara på en ändring av filen och kör åtgärden :reload
för dess resurs (i thisexample nginx
) när en ändring upptäcks.
om den andra resursen inte finns, kommer prenumerationen inte att höja anerror. Kontrast detta med den strängare semantiken av notifies
, vilkenkommer att ge ett fel om den andra resursen inte existerar.
en timer anger den punkt under en Chef Infra klient kör där anotification körs. Följande timers är tillgängliga:
:before
anger att åtgärden på en anmäld resurs ska köras innan du bearbetar resursblocket där meddelandet finns.
:delayed
standard. Anger att en anmälan ska köas upp och sedanutförs i slutet av en Chef Infra Client run.
:immediate
,:immediately
anger att en anmälan ska köras omedelbart, perresource meddelas.
syntaxen för subscribes
är:
subscribes :action, 'resource', :timer
Guards
en guard-egenskap kan användas för att utvärdera tillståndet för en nod under exekveringsfasen av en Chef Infra-Klientkörning. Baserat på resultaten av denna utvärdering används en vaktfastighet för att berätta för Chef Infra Client ifit att fortsätta att utföra en resurs. En guard-egenskap accepterar antingenett strängvärde eller ett Rubinblockvärde:
- en sträng exekveras som ett skalkommando. Om kommandot returnerar
0
tillämpas vakten. Om kommandot returnerar något annat värde, dåvaktegenskapen tillämpas inte. Strängvakter i apowershell_script kör Windows PowerShell-kommandon och mayreturntrue
förutom0
. - ett block körs som Rubinkod som måste returnera antingen
true
ellerfalse
. Om blocket returnerartrue
tillämpas egenskapen guard.Om blocket returnerarfalse
tillämpas inte egenskapen guard.
en guard-egenskap är användbar för att säkerställa att en resurs är idempotent genom att tillåta den resursen att testa för önskat tillstånd som det är exekverat, och sedan om det önskade tillståndet är närvarande, för Chef InfraClient att inte göra någonting.
egenskaper
följande egenskaper kan användas för att definiera en vakt som utvärderas under exekveringsfasen för en Chef Infra-Klientkörning:
not_if
förhindra att en resurs körs när villkoret returnerar true
.
only_if
Tillåt att en resurs körs endast om villkoret returnerar true
.
exempel
följande exempel visar olika metoder för att använda launchd-resursen i recept:
skapa en Lanseringsdemon från en kokbokfil