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. -
actionidentifierar 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:
:createstandard. Skapa en launchd-egenskapslista.:create_if_missingskapa en egenskapslista för launchd om den inte redan finns.:deleteta bort en egenskapslista för launchd. Detta kommer att lossa en demon eller agent, om den laddas.:disableinaktivera en launchd-egenskapslista.:enableskapa 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.:nothingdet 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.:restartstarta om en launchd-hanterad Demon eller agent.
egenskaper
launchd-resursen har följande egenskaper:
abandon_process_groupRuby 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.
backupRuby 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.
cookbookRuby Typ: String
namnet på kokboken där källfilerna finns.
groupRuby 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.
labelRuby Typ: Sträng
den unika identifieraren för jobbet.
modeRuby Typ: heltal, sträng / standardvärde:'0755'
en citerad 3-5 teckensträng som definierar oktalt läge. Forexempel: '755', '0755' eller 00755.
ownerRuby 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).
pathRuby 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_hashRuby Typ: Hash
en Hash med nyckelvärdespar som används för att skapa egenskapslistan launchd.
session_typeRuby 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.
typeRuby Typ: Sträng
typen av resurs. Möjliga värden: daemon (standard), agent.
abandon_process_groupRuby 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.
debugRuby Typ: true, false
ställer in loggmasken till LOG_DEBUG för det här jobbet.
disabledRuby Typ: sant, falskt / standardvärde:false
tips till launchctl för att inte skicka det här jobbet till launchd.
enable_globbingRuby Typ: sant, falskt
uppdatera programargument före anrop.
enable_transactionsRuby Typ: true, false
spåra pågående transaktioner; om ingen, skicka sedan SIGKILL – signalen.
environment_variablesRuby Typ: Hash
ytterligare miljövariabler att ställa in innan du kör ett jobb.
exit_timeoutRuby Typ: heltal
den tid (i sekunder) launchd väntar innan du skickar en SIGKILL signal.
hard_resource_limitsRuby Typ: Hash
en Hash av resursgränser som ska införas på ett jobb.
inetd_compatibilityRuby 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 acceptsystemanropet på uppdrag av jobbet och skicka sedan standardinmatnings -, utdata-och felfilbeskrivningar.
init_groupsRuby Type: true, false
ange om initgroups anropas innan du kör ett jobb.
keep_aliveRuby 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_eventsRuby 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_onceRuby 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_hostsRuby 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_hostsRuby Type: Array
en array av värdar som denna konfigurationsfilen gäller.
limit_load_to_session_typeRuby Type: Array, String
den sessionstyp(er) som denna konfigurationsfil gäller.
low_priority_ioRuby Type: true, false
ange om kärnan på noden ska betrakta den här demonen som låg prioritet under filsystemet I / O.
mach_servicesRuby Type: Hash
ange tjänster som ska registreras med bootstrap-delsystemet.
niceRuby Typ: heltal
program schemaläggning prioritetsvärde i intervallet -20till 20.
on_demandRuby 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_typeRuby Typ: Sträng
det avsedda syftet med jobbet: Adaptive, Background, Interactive, eller Standard.
programRuby 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_argumentsRuby 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_directoriesRuby Type: Array
en array av icke-tomma kataloger som, om någon ändras, kommer att orsaka ett jobb som ska startas.
root_directoryRuby Typ: Sträng
chroot till den här katalogen och kör sedan jobbet.
run_at_loadRuby Type: true, false
starta ett jobb en gång (när det laddas).
socketsRuby Typ: Hash
en Hash av on-demand uttag som meddelar launchd när ett jobb ska köras.
soft_resource_limitsRuby Typ: Array
en Hash av resursgränser som ska införas på ett jobb.
standard_error_pathRuby Typ: Sträng
filen till vilken standardfel (stderr) skickas.
standard_in_pathRuby Typ: Sträng
filen till vilken standardinmatning (stdin) skickas.
standard_out_pathRuby Typ: Sträng
filen till vilken standardutmatning (stdout) skickas.
start_calendar_intervalRuby 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_intervalRuby Typ: Heltal
frekvensen (i sekunder) vid vilken ett jobb startas.
start_on_mountRuby Type: true, false
starta ett jobb varje gång ett filsystem är monterat.
throttle_intervalRuby Typ: heltal / standardvärde:10
frekvensen (i sekunder) vid vilken jobb får leka.
time_outRuby 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.
umaskRuby Typ: heltal
ett decimalvärde som ska skickas till umask innan du kör ett jobb.
usernameRuby 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_pathsRuby Type: Array
en rad sökvägar som, om någon ändras, kommer att få ett jobb att startas.
working_directoryRuby 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
0tillä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 mayreturntrueförutom0. - ett block körs som Rubinkod som måste returnera antingen
trueellerfalse. Om blocket returnerartruetillämpas egenskapen guard.Om blocket returnerarfalsetillä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