launchd resurs

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, och working_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 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 mayreturn true förutom 0.
  • ett block körs som Rubinkod som måste returnera antingen true ellerfalse. Om blocket returnerar true tillämpas egenskapen guard.Om blocket returnerar false 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



+