launchd resurssi

Muokkaa tätä sivua Chef-arkistossa

Tämä sivu on luotu Chef Infra Client-lähteestä code.To Ehdota muutosta, muokkaa laukaisua.RB-tiedosto ja lähetä pull-pyyntö Chef Infra-asiakasrekisteriin.

kaikki Infra-resurssit-sivu

käytä launchd-resurssia järjestelmän laajuisten palvelujen (daemonit) ja käyttäjäkohtaisten palvelujen (agentit) hallintaan macOS-alustalla.

Uusi Chef Infra-asiakas 12.8.

syntaksi

kaikkien launchd-resurssin käytettävissä olevien ominaisuuksien täydellinen syntaksi on:

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

jossa:

  • launchd on voimavara.
  • name on resurssilohkolle annettu nimi.
  • action yksilöi, mihin toimiin Chef Infra-asiakas ryhtyy saadakseen solmun haluttuun tilaan.
  • 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, ja working_directory ovat tämän resurssin käytettävissä olevat ominaisuudet.

toimet

launchd-resurssilla on seuraavat toiminnot:

:createDefault. Luo launchd-ominaisuusluettelo.:create_if_missingluo launchd-ominaisuusluettelo, jos sitä ei ole jo olemassa.:deletePoista launchd-ominaisuusluettelo. Tämä purkaa taustaprosessin tai agentin, jos se on ladattu.:disablePoista launchd-ominaisuusluettelo käytöstä.:enableluo launchd-ominaisuusluettelo ja varmista sitten, että se on käytössä. Jos launchd-ominaisuusluettelo on jo olemassa, mutta se ei täsmää, päivittää ominaisuusluettelon täsmäämään ja käynnistää sitten taustaprosessin tai agentin uudelleen.:nothingtämä resurssilohko ei toimi, ellei toinen resurssi ilmoita toimea. Kun tämä resurssilohko on ilmoitettu, se joko suoritetaan välittömästi tai jonotetaan Chef Infra-asiakasohjelman loppuun.:restartKäynnistä launchd: n hallittu taustaprosessi tai agentti uudelleen.

ominaisuudet

launchd-resurssilla on seuraavat ominaisuudet:

abandon_process_groupRuby Type: true, false

jos työ kuolee, kaikki jäljellä olevat prosessit, joilla on sama prosessin tunnus, saattavat pitää käynnissä. Aseta todeksi tappaaksesi kaikki jäljellä olevat prosessit.

backupRubiinityyppi: kokonaisluku, väärä

pidettävien varmuuskopioiden määrä /var/chef/backup. Asetafalse estämään varmuuskopioiden säilyttäminen.

cookbookRubiinityyppi: Merkkijono

keittokirjan nimi, jossa lähdetiedostot sijaitsevat.

groupRuby Type: String, kokonaisluku

kun launchd suoritetaan pääkäyttäjänä, ryhmä, jolla tehtävä suoritetaan.Jos ominaisuus username on määritetty ja tätä ominaisuutta ei ole, tämä arvo asetetaan käyttäjän oletusryhmäksi.

labelRuby Type: String

the unique identifier for the job.

modeRubiinityyppi: kokonaisluku, merkkijono / oletusarvo:'0755'

lainattu 3-5 merkin merkkijono, joka määrittelee oktaalitilan. Esimerkki: '755', '0755' tai 00755.

ownerRubiinityyppi: Kokonaisluku, merkkijono

merkkijono tai tunnus,joka tunnistaa ryhmän omistajan käyttäjänimen perusteella, mukaan lukien täysin pätevät käyttäjätunnukset, kuten domain\user taiuser@domain. Jos Tätä arvoa ei ole määritetty, nykyiset omistajat säilyvät muuttumattomina ja uudet omistajatehtävät käyttävät nykyistä käyttäjää(tarvittaessa).

pathRuby Type: String

the path to the directory. Täysin pätevän polun käyttöä suositellaan, mutta sitä ei aina tarvita. Oletusarvo: resurssilohkon name. Lisätietoja on kohdassa ”syntaksi”.

plist_hashRubiinityyppi: Hash

avainarvoparien Hash, jota käytetään launchd-ominaisuusluettelon luomiseen.

session_typeRuby Type: String

the type of launchd plist to be created. Mahdolliset arvot: system(oletusarvo) tai user.

sourceRuby Type: String

the path to the launchd property list.

typeRubiinityyppi: merkkijono

resurssityyppi. Mahdolliset arvot: daemon (oletusarvo), agent.

abandon_process_groupRuby Type: true, false

jos työ kuolee, kaikki jäljellä olevat prosessit, joilla on sama prosessin tunnus, saattavat pitää käynnissä. Aseta todeksi tappaaksesi kaikki jäljellä olevat prosessit.

debugRubiinityyppi: true, false

asettaa tukkinaamarin arvoon LOG_DEBUG tätä työtä varten.

disabledRuby Type: true, false | Default Value:false

vihjeet launchctl ei lähetä tätä työtä launchd: lle.

enable_globbingRuby Type: true, false

Päivitä ohjelman argumentit ennen kutsumista.

enable_transactionsRuby Type: true, false

Track in-progress transactions; jos ei ole, lähetä SIGKILL signaali.

environment_variablesRuby Type: Hash

muut ympäristömuuttujat, jotka asetetaan ennen työn suorittamista.

exit_timeoutRubiinityyppi: kokonaisluku

aika (sekunteina) launchd odottaa ennen SIGKILL signaalin lähettämistä.

hard_resource_limitsRuby Type: Hash

a Hash of resource limits to be forced to a job.

inetd_compatibilityRuby Type: Hash

määrittää, odottaako taustaprosessi suoritettavan kuin se olisi käynnistettyinetd: stä. Aseta arvoon wait => true välittääksesi standarditulon, lähdön, anderror-tiedostokuvauksen. Aseta arvoon wait => false soittaaksesi accept järjestelmäkutsun työn puolesta ja siirtääksesi standarditulo -, ulostulo-ja virhetiedoston kuvaajat.

init_groupsRuby Type: true, false

määritä, onko initgroups kutsuttu ennen työn suorittamista.

keep_aliveRubiinityyppi: true, false, Hash

pidä työ käynnissä jatkuvasti (true) tai anna solmun kysynnän ja ehtojen määrittää, jatkuuko työ (false).

Uusi Chef Client 12.14

launch_eventsRuby Type: hash

Määritä korkeamman tason tapahtumatyypit, joita voidaan käyttää launch-on-demand-tapahtumalähteinä.

Uusi Chef Infra Client 15.1

launch_only_onceRuby Type: true, false

Määritä, voiko työn suorittaa vain kerran. Aseta tämä arvo true, jos työtä ei voida käynnistää uudelleen ilman koneen täyttä uudelleenkäynnistystä.

limit_load_from_hostsRubiinityyppi: Array

a array of hosts which this configuration file does not apply, so. ”apply this configuration file to all hosts not determined in this array”.

limit_load_to_hostsRuby Type: Array

an array of hosts to which this configuration file applied.

limit_load_to_session_typeRuby Type: Array, String

sessiotyypit, joihin tätä asetustiedostoa sovelletaan.

low_priority_ioRuby Type: true, false

määritä, pitääkö solmun ytimen tätä demonia vähäisenä prioriteettina tiedostojärjestelmän I/O aikana.

mach_servicesRuby Type: Hash

Määritä bootstrap-alijärjestelmään rekisteröidyt palvelut.

niceRuby-Tyyppi: kokonaisluku

ohjelman aikataulutuksen prioriteettiarvo alueella -2020.

on_demandRuby Type: true, false

Keep a job alive. Koskee vain macOS-versiota 10.4 (ja aikaisempaa);käytä keep_alive sen sijaan uudemmissa versioissa.

process_typeRuby Type: String

the intended purpose of the job: Adaptive, Background, Interactive, tai Standard.

programRuby Type: String

execvp ensimmäinen argumentti, tyypillisesti tiedoston nimi liitetään suoritettavaan tiedostoon. Tämä arvo on ilmoitettava, josprogram_arguments ei ole määritelty, ja päinvastoin.

program_argumentsRubiinityyppi: Array

toinen argumentti execvp. Jos program ei ole määritelty, tämä ominaisuus on määriteltävä ja sitä käsitellään ikään kuin se olisi ensimmäinen argumentti.

queue_directoriesRuby Type: Array

a array of non-empty directories which, if any are modified, will brought a job to be started.

root_directoryRuby Type: String

chroot tähän hakemistoon ja suorita sitten työ.

run_at_loadRuby Type: true, false

Launch a job once (at the time it is loaded).

socketsRuby Type: Hash

a hash of On-demand sockets that notice launchd when a job should be run.

soft_resource_limitsRubiinityyppi: Array

a Hash of resource limits to be imported on a job.

standard_error_pathRuby Type: String

tiedosto, johon keskivirhe (stderr) lähetetään.

standard_in_pathRuby Type: String

tiedosto, johon vakiosyöttö (stdin) lähetetään.

standard_out_pathRuby Type: String

tiedosto, johon standardituloste (stdout) lähetetään.

start_calendar_intervalRuby Type: Hash

Hash (samanlainen kuin crontab), joka määrittää kalenteritiheyden, jolla työ aloitetaan. Esimerkiksi:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" }ajaa keikan joka päivä, maanantaista perjantaihin, joka kuukausi.

start_intervalRubiinityyppi: Kokonaisluku

taajuus (sekunteina), jolla työ aloitetaan.

start_on_mountRuby Type: true, false

aloita työ aina, kun tiedostojärjestelmä asennetaan.

throttle_intervalRuby Type: Integer / Default Value:10

the frequency (sekunteina) at jobs are allowed to kutee.

time_outRubiinityyppi: kokonaisluku

työ voi olla tyhjäkäynnillä (sekunteina) ennen aikalisää. Jos arvoa ei ole määritetty, käytetään laukaisun oletuskäynnistysarvoa.

umaskRubiinityyppi: kokonaisluku

desimaaliarvo, joka on annettava umask ennen työn suorittamista.

usernameRubiinityyppi: Merkkijono

kun launchd suoritetaan pääkäyttäjänä, käyttäjänä, joka suorittaa työn nimellä.

wait_for_debuggerRuby Type: true, false

määritä, onko launchd: llä tehtävä odottaa debuggerin liittämistä ennen koodin suorittamista.

watch_pathsRuby Type: Array

a array of paths which, if any modified, will be about a job to be started.

working_directoryRuby Type: String

chdir tähän hakemistoon ja suorita sitten työ.

yhteiset Resurssitoiminnot

Chef-resurssit sisältävät yhteiset ominaisuudet, Ilmoitukset ja resurssivartijat.

yhteiset ominaisuudet

seuraavat ominaisuudet ovat yhteisiä kaikille resursseille:

compile_time

Ruby-Tyyppi: tosi, väärä / oletusarvo: false

ohjaa vaihetta, jonka aikana resurssia ajetaan solmussa. Aseta arvoon true suoritettavaksi resurssikokoelmaa rakennettaessa (compile phase). Aseta epätosi suoritettavaksi, kun Chef Infra-asiakas määrittää solmua (converge phase).

ignore_failure

Ruby Type: true, false,: quiet | Default Value: false

jatka reseptin ajamista, jos resurssi jostain syystä epäonnistuu. :quiet ei näytä koko pinon jäljitystä ja resepti jatkuu, jos resurssi epäonnistuu.

retries

Rubiinityyppi: kokonaisluku / oletusarvo: 0

niiden yritysten lukumäärä, joilla pyritään pyydystämään poikkeuksia ja yrittämään luonnonvaraa uudelleen.

retry_delay

Rubiinityyppi: kokonaisluku / oletusarvo: 2

yritä uudelleen viive (sekunneissa).

sensitive

Ruby Type: true, false | Default Value: false

varmista, että Chef InfraClient ei tallenna arkaluonteisia resurssitietoja.

Notifications

notifies

Ruby Type: Symbol, ” Chef::Resurssi ”

resurssi voi ilmoittaa toiselle resurssille ryhtyäkseen toimiin, jos sen tila muuttuu. Täsmentäkää 'resource', :action, johon varat on käytettävä, ja sitten :timer, joka on tarkoitettu kyseiseen toimeen. Resurssi voi ilmoittaa useammasta kuin yhdestä resurssista; käytä notifies – merkintää jokaisesta ilmoitettavasta resurssista.

jos viitattua resurssia ei ole olemassa, virhe on raised.In sen sijaan subscribes ei epäonnistu, jos lähdelähdettä ei löydy.

ajastin määrittää Chef Infra Client-ajon ajankohdan, jossa voitelu suoritetaan. Käytössä ovat seuraavat ajastimet:

:before

täsmennetään, että ilmoitettua resurssia koskeva toimi olisi suoritettava ennen sen resurssilohkon käsittelyä, johon ilmoitus on sijoitettu.

:delayed

oletusarvo. Määrittää, että ilmoitus on jonotettava ja esitettävä Chef Infra-asiakasohjelman lopussa.

:immediate,:immediately

täsmennetään, että ilmoitus on tehtävä välittömästi, perresource tiedotti.

notifies syntaksi on:

notifies :action, 'resource', :timer

subscribes

Rubiinityyppi: symboli, ” Chef::Resurssi ”

resurssi voi kuunnella toista resurssia ja ryhtyä sitten toimiin, jos kuunneltavan resurssin määrä muuttuu. Täsmennettävä'resource', toteutettava :action ja sen jälkeen tehtävä :timer.

huomaa, että subscribes ei sovella määrättyä toimintoa kuuntelemaansa lähteeseen-esim.:

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

tässä tapauksessa subscribes kiinteistö lataa nginx palvelun uudelleen, kun sen todistustiedosto, joka sijaitsee kohdassa/etc/nginx/ssl/example.crt, päivitetään. subscribes ei tee mitään muutoksia itse varmennetiedostoon, se vain kuuntelee tiedoston muutoksen ja suorittaa :reload – toiminnon resurssinsa puolesta (tässä esimerkissä nginx), kun muutos havaitaan.

jos muuta resurssia ei ole olemassa, merkintä ei aiheuta virhettä. Vertaa tätä tiukempaan semantiikkaan notifies, joka aiheuttaa virheen, jos muuta resurssia ei ole olemassa.

ajastin määrittää Chef Infra Client-ajon ajankohdan, jossa voitelu suoritetaan. Käytössä ovat seuraavat ajastimet:

:before

täsmennetään, että ilmoitettua resurssia koskeva toimi olisi suoritettava ennen sen resurssilohkon käsittelyä, johon ilmoitus on sijoitettu.

:delayed

oletusarvo. Määrittää, että ilmoitus on jonotettava ja esitettävä Chef Infra-asiakasohjelman lopussa.

:immediate,:immediately

täsmennetään, että ilmoitus on tehtävä välittömästi, perresource tiedotti.

subscribes syntaksi on:

subscribes :action, 'resource', :timer

vartijat

vartijan ominaisuudella voidaan arvioida solmun tilaa Chef Infra – asiakasajon tekovaiheessa. Tämän arvioinnin tulosten perusteella vartijan ominaisuudella kerrotaan kokki Infra-asiakkaalle, pitäisikö sen jatkaa resurssin toteuttamista. Vartijan ominaisuus hyväksyy eithera-merkkijonon arvon tai Rubiinilohkon arvon:

  • merkkijono suoritetaan komentotulkkina. Jos komento palaa 0, käytetään suojusta. Jos komento palauttaa muun arvon, vartijan ominaisuutta ei käytetä. Merkkijonosuojat apowershell_script suorita Windows PowerShell-komennot ja voi palauttaa true lisäksi 0.
  • lohko suoritetaan Ruby-koodina, jonka täytyy palata joko true taifalse. Jos lohko palaa true, sovelletaan vartijan ominaisuutta.Jos lohko palaa false, vartijan ominaisuutta ei sovelleta.

vartijan ominaisuus on hyödyllinen resurssin tunnistamisen varmistamiseksi antamalla resurssin testata haluttu tila, koska sitä käytetään, ja sitten, jos haluttu tila on olemassa, Chef InfraClient ei tee mitään.

ominaisuudet

seuraavia ominaisuuksia voidaan käyttää määrittelemään vartija, joka arvioidaan Chef Infra-asiakasohjelman suoritusvaiheessa:

not_if

Estä resurssia suorittamasta, kun ehto palaa true.

only_if

salli resurssin suorittaa vain, jos ehto palaa true.

esimerkit

seuraavat esimerkit osoittavat erilaisia lähestymistapoja launchd-resurssin käyttöön resepteissä:

luo Keittokirjatiedostosta Käynnistysdeemoni



+