launchd Resource

bewerk deze pagina in de Chef repository

deze pagina wordt gegenereerd vanuit de Chef Infra Client bron code.To Stel een wijziging voor, bewerk de launchd.RB bestand en stuur een pull request naar de Chef Infra Client repository.

alle Infra-bronnen pagina

gebruik de launchd-bron om systeembrede services (daemons) en per-gebruiker services (agents) op het macOS-platform te beheren.

nieuw in Chef Infra Client 12.8.

syntaxis

de volledige syntaxis voor alle eigenschappen die beschikbaar zijn voor de launchd-bron is::

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

waarbij:

  • launchd is de bron.
  • name is de naam die aan het bronblok wordt gegeven.
  • action geeft aan welke stappen Chef Infra Client zal nemen om het knooppunt in de gewenste staat te brengen.
  • 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, en working_directory zijn de eigenschappen die beschikbaar zijn voor deze bron.

acties

de launchd-bron heeft de volgende acties:

:createstandaard. Maak een launchd property lijst.:create_if_missingMaak een launchd-eigenschappenlijst aan, als deze nog niet bestaat.:deleteVerwijder een launchd-eigenschappenlijst. Dit zal een Daemon of agent uitladen, indien geladen.:disableschakel een launchd-eigenschappenlijst uit.:enableMaak een launchd-eigenschappenlijst aan en zorg ervoor dat deze is ingeschakeld. Als een launchd-eigenschappenlijst al bestaat, maar niet overeenkomt, werkt u de eigenschappenlijst bij en start u de daemon of agent opnieuw op.:nothingdit bronblok handelt niet tenzij een andere bron op de hoogte is gesteld van actie. Eenmaal aangemeld, dit resource blok ofwel loopt onmiddellijk of is in de wachtrij om te draaien aan het einde van een Chef Infra Client run.:restartHerstart een door launchd beheerde daemon of agent.

eigenschappen

de launchd-bron heeft de volgende eigenschappen:

abandon_process_groupRuby Type: true, false

als een taak afvalt, blijven alle resterende processen met hetzelfde proces-ID mogelijk draaien. Inschakelen om alle resterende processen te stoppen.

backupRuby Type: Integer, false

het aantal back-ups dat bewaard moet worden in /var/chef/backup. Ingesteld opfalse om te voorkomen dat back-ups worden bewaard.

cookbookRobijntype: String

de naam van het kookboek waarin de bronbestanden zich bevinden.

groupRuby Type: String, Integer

wanneer launchd wordt uitgevoerd als de root gebruiker, de groep om de taak als uit te voeren.Als de eigenschap username is opgegeven en deze eigenschap niet,wordt deze waarde ingesteld op de standaardgroep voor de gebruiker.

labelRuby Type: String

de unieke identifier voor de taak.

modeRuby Type: Integer, String / Default Value:'0755'

een geciteerde tekenreeks van 3-5 tekens die de octale modus definieert. Voorbeeld: '755', '0755', of 00755.

ownerRobijntype: Integer, String

een string of ID die de groepseigenaar identificeert op gebruikersnaam, inclusief volledig gekwalificeerde Gebruikersnamen zoals domain\user ofuser@domain. Als deze waarde niet is opgegeven, blijven bestaande eigenaars ongewijzigd en gebruiken nieuwe eigenaar toewijzingen de huidige gebruiker(indien nodig).

pathRuby Type: String

het pad naar de map. Het gebruik van een volledig gekwalificeerd pad wordt aanbevolen, maar is niet altijd vereist. Standaardwaarde: namevan het bronblok. Zie de sectie “syntaxis” hierboven voor meer informatie.

plist_hashRuby-Type: Hash

een Hash van sleutelwaardeparen die gebruikt worden om de eigenschappenlijst van launchd aan te maken.

session_typeRuby Type: String

het type launchd plist dat moet worden aangemaakt. Mogelijke waarden: system(standaard) of user.

sourceRuby Type: String

het pad naar de launchd-eigenschappenlijst.

typeRuby Type: String

het type bron. Mogelijke waarden: daemon (standaard), agent.

abandon_process_groupRuby Type: true, false

als een taak afsterft, kunnen alle resterende processen met hetzelfde proces-ID blijven draaien. Inschakelen om alle resterende processen te stoppen.

debugRuby-Type: waar, onwaar

stelt het logmasker in op LOG_DEBUG voor deze taak.

disabledRuby Type: true, false / Default Value:false

Hints to launchctl to not submit this job to launchd.

enable_globbingRuby Type: true, false

Programmaargumenten bijwerken voor aanroep.

enable_transactionsRuby Type: true, false

Track in-progress transactions; if none, send the SIGKILL signal.

environment_variablesRuby Type: Hash

extra in te stellen omgevingsvariabelen voordat een taak wordt uitgevoerd.

exit_timeoutRuby Type: Integer

de hoeveelheid tijd (in seconden) die launchd wacht voordat een SIGKILL signaal wordt verzonden.

hard_resource_limitsRuby Type: Hash

een Hash van bronlimieten die aan een taak moeten worden opgelegd.

inetd_compatibilityRuby Type: Hash

geeft aan of een daemon verwacht te worden uitgevoerd alsof het werd gestart vanafinetd. Ingesteld op wait => true om standaardinvoer, uitvoer, anderror-bestandsdescriptoren door te geven. Stel in op wait => false om de acceptsysteemaanroep namens de taak aan te roepen en geef dan de standaard invoer -, uitvoer-en foutbeschrijvers door.

init_groupsRuby Type: true, false

Geef op of initgroups wordt aangeroepen voordat een taak wordt uitgevoerd.

keep_aliveRobijntype: true, false, Hash

laat een taak continu draaien (true) of laat vraag en voorwaarden op het knooppunt bepalen of de taak blijft draaien (false).

nieuw in Chef-Client 12.14

launch_eventsRuby-Type: Hash

specificeer gebeurtenistypen op hoger niveau die moeten worden gebruikt als gebeurtenisbronnen op launch-on-demand.

nieuw in Chef Infra Client 15.1

launch_only_onceRuby Type: true, false

geef aan of een taak slechts één keer kan worden uitgevoerd. Stel deze waarde in op trueals een taak niet herstart kan worden zonder een volledige machine-herstart.

limit_load_from_hostsRuby-Type: Array

een array van hosts waarop dit configuratiebestand niet van toepassing is,d.w.z. “pas dit configuratiebestand toe op alle hosts die niet zijn gespecificeerd in deze array”.

limit_load_to_hostsRuby Type: Array

een array van hosts waarop dit configuratiebestand van toepassing is.

limit_load_to_session_typeRuby Type: Array, String

het sessietype(en) waarop dit configuratiebestand van toepassing is.

low_priority_ioRuby Type: true, false

specificeer of de kernel op het knooppunt deze daemon als een lage prioriteit moet beschouwen tijdens bestandssysteem I / O.

mach_servicesRuby Type: Hash

Specificeer services die moeten worden geregistreerd bij het bootstrap subsysteem.

niceRuby Type: Integer

de programmaprioriteit in het bereik -20 tot 20.

on_demandRuby Type: true, false

een taak in leven houden. Alleen van toepassing op macOS versie 10.4 (en eerder); gebruik keep_alive in plaats daarvan voor nieuwere versies.

process_typeRuby Type: String

het beoogde doel van de taak: Adaptive, Background, Interactive, of Standard.

programRuby Type: String

het eerste argument van execvp, typisch de bestandsnaam geassocieerd met het uit te voeren bestand. Deze waarde moet worden gespecificeerd alsprogram_arguments niet is gespecificeerd, en omgekeerd.

program_argumentsRobijntype: Array

het tweede argument van execvp. Als program niet gespecificeerd is, moet dit argument opgegeven worden en zal het behandeld worden alsof het het eerste argument is.

queue_directoriesRuby Type: Array

een array van niet-lege mappen die, indien ze worden gewijzigd, ervoor zorgen dat een taak wordt gestart.

root_directoryRuby Type: String

chroot naar deze map, en voer de taak uit.

run_at_loadRuby Type: true, false

Start een taak eenmaal (bij het laden).

socketsRuby Type: Hash

een Hash van on-demand sockets die launchd aangeven wanneer een taak moet worden uitgevoerd.

soft_resource_limitsRobijntype: Array

een Hash van bronlimieten die aan een taak moeten worden opgelegd.

standard_error_pathRuby Type: String

het bestand waarnaar standaardfout (stderr) wordt verzonden.

standard_in_pathRuby Type: String

het bestand waarnaar standaardinvoer (stdin) wordt verzonden.

standard_out_pathRuby Type: String

het bestand waarnaar standaarduitvoer (stdout) wordt verzonden.

start_calendar_intervalRuby Type: Hash

een Hash (vergelijkbaar met crontab) die de kalenderfrequentie definieert waarop een taak wordt gestart. Bijvoorbeeld:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" }zal elke dag om 20:00 uur werken, van maandag tot en met vrijdag, elke maand van het jaar.

start_intervalRuby-Type: Integer

de frequentie (in seconden) waarmee een taak wordt gestart.

start_on_mountRuby Type: true, false

Start een taak elke keer dat een bestandssysteem wordt aangekoppeld.

throttle_interval

Robijntype: geheel getal / standaardwaarde:10

de frequentie (in seconden) waarmee taken mogen worden voortgebracht.

time_outRuby Type: Integer

de hoeveelheid tijd (in seconden) die een taak inactief kan zijn voordat de time-out plaatsvindt. Als er geen waarde is opgegeven, zal de standaard timeoutwaarde voor launchd worden gebruikt.

umaskRuby Type: Integer

een decimale waarde die moet worden doorgegeven aan umask voordat een taak wordt uitgevoerd.

usernameRobijntype: String

wanneer launchd wordt uitgevoerd als de root gebruiker, de gebruiker om de taak als uit te voeren.

wait_for_debuggerRuby Type: true, false

Geef op of launchd een taak heeft die wacht op een debugger voordat de code wordt uitgevoerd.

watch_pathsRuby Type: Array

een array van paden die, indien gewijzigd, ervoor zorgen dat een taak wordt gestart.

working_directoryRuby Type: String

chdir naar deze map, en voer de taak uit.

Common Resource Functionality

Chef-resources omvatten common properties, notifications en resource guards.

gemeenschappelijke eigenschappen

de volgende eigenschappen zijn gemeenschappelijk voor elke hulpbron:

compile_time

Ruby Type: true, false / Default waarde: false

Bepaal de fase waarin de bron wordt uitgevoerd op het knooppunt. Inschakelen om uit te voeren terwijl de broncollectie wordt gebouwd (de compile phase). Ingesteld op false om te draaien terwijl Chef Infra Client het knooppunt configureert (de converge phase).

ignore_failure

Ruby Type: true, false,: quiet / Default waarde: false

Ga door met het uitvoeren van een Recept als een bron om welke reden dan ook faalt. :quiet zal niet de volledige stack trace tonen en het recept zal blijven draaien als een resource faalt.

retries

Robijntype: geheel getal / standaardwaarde: 0

het aantal pogingen om uitzonderingen te vangen en de bron opnieuw te proberen.

retry_delay

Robijntype: geheel getal / standaardwaarde: 2

de vertraging van het opnieuw proberen (in seconden).

sensitive

Ruby-Type: waar, onwaar | standaardwaarde: false

zorg ervoor dat gevoelige brongegevens niet worden geregistreerd door Chef InfraClient.

Meldingen

notifies

Ruby Type: Symbool, ” Chef::Bron ”

een bron kan een andere bron ervan in kennis stellen actie te ondernemen wanneer zijn staat verandert. Specificeer een 'resource', de :action die middelen moeten nemen, en vervolgens de :timer voor die actie. Een bron kan meer dan één bron melden; Gebruik een notifies statement voor elke bron die moet worden aangemeld.

als de bron waarnaar wordt verwezen niet bestaat, is een fout raised.In contrast, subscribes zal niet falen als de bronbron niet wordt gevonden.

een timer specificeert het punt tijdens een Chef Infra Client run waarop anotificatie wordt uitgevoerd. De volgende timers zijn beschikbaar:

:before

geeft aan dat de actie met betrekking tot een aangemelde bron moet worden uitgevoerd voordat het bronblok waarin de kennisgeving is geplaatst, wordt verwerkt.

:delayed

standaard. Hiermee geeft u op dat een melding in de wachtrij moet worden geplaatst en vervolgens moet worden uitgevoerd aan het einde van een Chef Infra-Client-run.

:immediate,:immediately

Hiermee geeft u op dat een melding onmiddellijk moet worden uitgevoerd, per bron aangemeld.

de syntaxis voor notifies is:

notifies :action, 'resource', :timer

subscribes

robijn Type: symbool, ‘ Chef::Resource ‘

een resource kan naar een andere resource luisteren en vervolgens actie ondernemen als de status van de resource waarnaar wordt geluisterd verandert. Specificeer een'resource', de te nemen :action en vervolgens de te nemen :timer.

merk op dat subscribes de gespecificeerde actie niet toepast op de bron waarnaar het luistert – bijvoorbeeld:

file '/etc/nginx/ssl/example.crt' do mode '0600' owner 'root'endservice 'nginx' do subscribes :reload, 'file', :immediatelyend

In dit geval laadt de eigenschap subscribes de dienst nginx wanneer het certificaatbestand onder/etc/nginx/ssl/example.crt wordt bijgewerkt. subscribes maakt geen wijzigingen aan het certificaatbestand zelf, het luistert alleen naar een wijziging in het bestand en voert de actie :reload uit voor de bron (in dit voorbeeld nginx) wanneer een wijziging wordt gedetecteerd.

als de andere bron niet bestaat, zal het abonnement geen anerror verhogen. Vergelijk dit met de striktere semantiek van notifies, die een fout zal veroorzaken als de andere bron niet bestaat.

een timer specificeert het punt tijdens een Chef Infra Client run waarop anotificatie wordt uitgevoerd. De volgende timers zijn beschikbaar:

:before

geeft aan dat de actie met betrekking tot een aangemelde bron moet worden uitgevoerd voordat het bronblok waarin de kennisgeving is geplaatst, wordt verwerkt.

:delayed

standaard. Hiermee geeft u op dat een melding in de wachtrij moet worden geplaatst en vervolgens moet worden uitgevoerd aan het einde van een Chef Infra-Client-run.

:immediate,:immediately

Hiermee geeft u op dat een melding onmiddellijk moet worden uitgevoerd, per bron aangemeld.

de syntaxis voor subscribes is:

subscribes :action, 'resource', :timer

Guards

een guard-eigenschap kan worden gebruikt om de toestand van een knooppunt te evalueren tijdens de uitvoeringsfase van een Chef Infra Client-run. Op basis van de resultaten van deze evaluatie, wordt een pand van de bewaker dan gebruikt om Chef Infra cliënt te vertellen of het moet doorgaan met het uitvoeren van een bron. Een eigenschap guard accepteert eithera string waarde of een Ruby block waarde:

  • een string wordt uitgevoerd als een shell commando. Als het commando 0geeft, wordt de guard toegepast. Als het commando een andere waarde retourneert, wordt de eigenschap guard niet toegepast. String guards in apowershell_script draaien Windows PowerShell commando ‘ s en kunnen true draaien naast 0.
  • een blok wordt uitgevoerd als Ruby-code die true offalsemoet retourneren. Als het blok true retourneert, wordt de eigenschap guard toegepast.Als het blok false retourneert, wordt de eigenschap guard niet toegepast.

een guard-eigenschap is nuttig om ervoor te zorgen dat een resource idempotent is door die resource toe te staan om te testen op de gewenste toestand zoals deze wordt uitgevoerd, en vervolgens als de gewenste toestand aanwezig is, voor Chef InfraClient om niets te doen.

Properties

de volgende eigenschappen kunnen worden gebruikt om een guard te definiëren die wordt geëvalueerd tijdens de uitvoeringsfase van een Chef Infra Client run:

not_if

voorkom dat een bron wordt uitgevoerd wanneer de voorwaarde trueretourneert.

only_if

laat een bron alleen uitvoeren als de voorwaarde trueretourneert.

voorbeelden

de volgende voorbeelden tonen verschillende benaderingen voor het gebruik van de launchd-hulpbron in recepten:

Maak een Launch-Daemon aan uit een kookboekbestand



+