launchd Resource

upravte tuto stránku v repozitáři Chef

Tato stránka je generována ze zdroje Chef Infra Client source code.To navrhněte změnu, upravte launchd.RB soubor a odeslat požadavek pull do repozitáře Chef Infra klienta.

všechny zdroje Infra

použijte prostředek launchd ke správě služeb v celém systému (démonů) a služeb pro uživatele (agentů) na platformě macOS.

novinka v Infra Client 12.8.

syntaxe

úplná syntaxe pro všechny vlastnosti, které jsou k dispozici zdroji launchd, je:

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

kde:

  • launchd je zdrojem.
  • name je název daný bloku prostředků.
  • action určuje, jaké kroky provede klient Infra, aby uzel uvedl do požadovaného stavu.
  • 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, a working_directory jsou vlastnosti k dispozici pro tento zdroj.

akce

zdroj launchd má následující akce:

:createvýchozí. Vytvořte seznam vlastností launchd.:create_if_missingVytvořte seznam vlastností launchd, pokud již neexistuje.:deleteSmazat seznam vlastností launchd. Tím se uvolní démon nebo agent, pokud je načten.:disablezakázat seznam vlastností launchd.:enableVytvořte seznam vlastností launchd a ujistěte se, že je povolen. Pokud seznam vlastností launchd již existuje, ale neshoduje se, aktualizuje seznam vlastností tak, aby odpovídal, a poté restartuje démona nebo agenta.:nothingtento blok prostředků nepůsobí, pokud o tom není informován jiným prostředkem. Po oznámení se tento blok zdrojů buď spustí okamžitě, nebo je zařazen do fronty, aby se spustil na konci běhu klienta Chef Infra.:restartrestartujte démona nebo agenta spravovaného launchd.

Vlastnosti

launchd zdroj má následující vlastnosti:

abandon_process_groupRuby Typ: true, false

Pokud práci zemře, všechny zbývající procesy se stejným ID procesu možná stále běží. Nastavte na true, abyste zabili všechny zbývající procesy.

backupTyp Ruby: Integer, false

počet záloh, které mají být uloženy v /var/chef/backup. Nastavte nafalse, abyste zabránili uchovávání záloh.

cookbookRubínový Typ: Řetězec

název kuchařky, ve které jsou umístěny zdrojové soubory.

groupRuby Type: String, Integer

když je launchd spuštěn jako uživatel root, skupina pro spuštění úlohy jako.Pokud je zadána vlastnost username a tato vlastnost není, je tato hodnota nastavena na výchozí skupinu pro uživatele.

labelRuby Type: String

jedinečný identifikátor úlohy.

modeTyp Ruby: celé číslo, řetězec / Výchozí hodnota:'0755'

citovaný řetězec 3-5 znaků, který definuje osmičkový režim. Příklad: '755', '0755' nebo 00755.

ownerRubínový Typ: Integer, String

řetězec nebo ID, které identifikuje vlastníka skupiny podle uživatelského jména, včetně plně kvalifikovaných uživatelských jmen, jako je domain\user nebo[email protected]. Pokud tato hodnota není zadána, stávající vlastnícizůstanou nezměněny a nové přiřazení vlastníků používají aktuálního uživatele(v případě potřeby).

pathRuby Type: String

cesta k adresáři. Použití plně kvalifikované cesty jedoporučeno, ale není vždy nutné. Výchozí hodnota: namebloku prostředků. Viz část „syntaxe“ výše pro dalšíinformace.

plist_hashRubínový Typ: Hash

Hash párů klíčových hodnot použitých k vytvoření seznamu vlastností launchd.

session_typeRuby Type: String

Typ launchd plist, který má být vytvořen. Možné hodnoty: system(výchozí) nebo user.

sourceRuby Type: String

cesta k seznamu vlastností launchd.

typeTyp Ruby: řetězec

typ zdroje. Možné hodnoty: daemon (výchozí), agent.

abandon_process_groupTyp Ruby: true, false

pokud úloha zemře, všechny zbývající procesy se stejným ID procesu možná zůstaly spuštěny. Nastavte na true, abyste zabili všechny zbývající procesy.

debugRubínový Typ: true, false

nastaví masku protokolu na LOG_DEBUG pro tuto úlohu.

disabledTyp Ruby: true, false / Default Value:false

naznačuje launchctl, že tuto úlohu nepředloží launchd.

enable_globbingTyp Ruby: true, false

Aktualizujte argumenty programu před vyvoláním.

enable_transactionsTyp Ruby: true, false

Sledujte probíhající transakce; pokud žádné nejsou, odešlete signál SIGKILL.

environment_variablesRuby Type: Hash

další proměnné prostředí, které se mají nastavit před spuštěním úlohy.

exit_timeoutRuby Type: Integer

množství času (v sekundách) launchd čeká před odesláním signálu SIGKILL.

hard_resource_limitsTyp Ruby: Hash

Hash limitů prostředků, které mají být uloženy na úlohu.

inetd_compatibilityRuby Type: Hash

určuje, zda démon očekává, že bude spuštěn, jako by byl spuštěn zinetd. Nastavena na wait => true pro předání standardních vstupních, výstupních, anderror deskriptorů souborů. Nastavte wait => false pro volání acceptsystémového volání jménem úlohy a poté předejte standardní deskriptory vstupních, výstupních a chybových souborů.

init_groupsTyp Ruby: true, false

Určete, zda je před spuštěním úlohy voláno initgroups.

keep_aliveRubínový Typ: true, false, Hash

udržuje práci běžící nepřetržitě (true) nebo povoluje poptávku a podmínky na uzlu, aby určil, zda úloha stále běží (false).

novinka v Chef Client 12.14

launch_eventsRuby Type: Hash

Určete typy událostí vyšší úrovně, které mají být použity jako zdroje událostí na vyžádání.

novinka v Chef Infra Client 15.1

launch_only_onceRuby Type: true, false

Určete, zda lze úlohu spustit pouze jednou. Pokud nelze úlohu restartovat bez úplného restartu počítače, nastavte tuto hodnotu na true.

limit_load_from_hostsRubínový Typ: Pole

pole hostitelé, na které se tento konfigurační soubor se nevztahuje,tj. „použít tento konfigurační soubor, aby všechny počítače, které nejsou uvedeny v tomto poli“.

limit_load_to_hostsRuby Type: Array

pole hostitelů, na které se tento konfigurační soubor vztahuje.

limit_load_to_session_typeRuby Type: Array, String

typy relací, na které se tento konfigurační soubor vztahuje.

low_priority_ioRuby Typ: true, false

Určit, pokud jádro na uzel by měl zvážit tento daemon bude nízká priorita v systému souborů I/O.

mach_services

Ruby Typ: Hash

Určit služby, které mají být registrovány s bootstrap subsystému.

niceRuby Type: Integer

hodnota priority plánování programu v rozsahu -2020.

on_demandTyp Ruby: true, false

Udržujte práci naživu. Platí pouze pro macOS verze 10.4 (a starší); místo toho použijte keep_alive pro novější verze.

process_typeTyp Ruby: řetězec

zamýšlený účel úlohy: Adaptive, Background, Interactive, nebo Standard.

programRuby Type: String

první argument execvp, typicky název souboru asociovaný se souborem, který má být proveden. Tato hodnota musí být zadána, pokud není zadánaprogram_arguments a naopak.

program_argumentsRubínový Typ: Pole

druhý argument execvp. Pokud program není specifikováno, musí být zadáno toto vlastnictví a bude s ním nakládáno, jako by to byl první argument.

queue_directoriesRuby Type: Array

pole neprázdných adresářů, které, pokud jsou některé upraveny, způsobí spuštění úlohy.

root_directoryRuby Type: String

chroot do tohoto adresáře a spusťte úlohu.

run_at_loadTyp Ruby: true, false

spusťte úlohu jednou (v době, kdy je načtena).

socketsRuby Type: Hash

Hash soketů na vyžádání, které upozorňují launchd, kdy má být úloha spuštěna.

soft_resource_limitsRubínový Typ: Pole

Hash limitů prostředků, které mají být uloženy na úlohu.

standard_error_pathTyp Ruby: řetězec

soubor, do kterého je odeslána standardní chyba (stderr).

standard_in_pathTyp Ruby: řetězec

soubor, do kterého je odeslán standardní vstup (stdin).

standard_out_pathTyp Ruby: řetězec

soubor, na který je odeslán standardní výstup (stdout).

start_calendar_intervalRuby Type: Hash

a Hash (podobně jako crontab), který definuje frekvenci kalendáře atkterá je spuštěna. Například:{ Minute => "0", Hour => "20", Day => "*", Weekday => "1-5", Month => "*" }bude pracovat v 8: 00 PM každý den, od pondělí do pátku, každýměsíc roku.

start_intervalRubínový Typ: Celé číslo

frekvence (v sekundách), při které je úloha spuštěna.

start_on_mountTyp Ruby: true, false

spusťte úlohu při každém připojení systému souborů.

throttle_intervalTyp Ruby: Integer / Default Value:10

frekvence (v sekundách), při které se úlohy mohou plodit.

time_outRuby Type: Integer

množství času (v sekundách) úloha může být nečinná před timesout. Pokud není zadána žádná hodnota, použije se výchozí hodnota časového limitu pro launchdbude použita.

umaskTyp Ruby: celé číslo

desetinná hodnota, kterou před spuštěním úlohy předáte umask.

usernameRubínový Typ: Řetězec

když je launchd spuštěn jako uživatel root, uživatel spustí úlohu jako.

wait_for_debugger

Ruby Typ: true, false

Určit, pokud launchd má práci, počkat na ladicí program připojit před spuštěním kódu.

watch_pathsRuby Type: Array

pole cest, které, pokud jsou některé upraveny, způsobí spuštění úlohy.

working_directoryRuby Type: String

chdir do tohoto adresáře a spusťte úlohu.

společné funkce zdrojů

zdroje šéfkuchaře zahrnují běžné vlastnosti, oznámení a stráže zdrojů.

Společné Vlastnosti

následující vlastnosti jsou společné pro všechny zdroje:

compile_time

Ruby Typ: true, false | Výchozí Hodnota: false

Ovládání fáze, během které je prostředek spustit na uzlu. Nastaveno na hodnotu true pro spuštění při vytváření kolekce prostředků (compile phase). Nastavena na hodnotu false pro spuštění, zatímco Chef Infra Client konfiguruje uzel (converge phase).

ignore_failure

Ruby Typ: true, false,: quiet / Default Value: false

pokračujte v spuštění receptu, pokud zdroj z jakéhokoli důvodu selže. :quiet nezobrazí úplnou stopu zásobníku a recept bude pokračovat v běhu, pokud selže zdroj.

retries

Typ Ruby: celé číslo / Výchozí hodnota: 0

počet pokusů o zachycení výjimek a opakování zdroje.

retry_delay

Typ Ruby: celé číslo / Výchozí hodnota: 2

zpoždění opakování (v sekundách).

sensitive

Typ Ruby: true, false / Default Value: false

ujistěte se, že citlivé údaje o zdroji nejsou zaznamenány Chef InfraClient.

Oznámení

notifies

Ruby Typ: Symbol, ‚ Chef::Zdroj ‚

zdroj může upozornit jiný zdroj, aby podnikl kroky, když se jeho stav změní. Zadejte 'resource', :action, který by měl mít zdroj, a poté :timer pro tuto akci. Zdroj může označit více než jeden zdroj; použijte příkaz notifies pro každý zdroj, který má být oznámen.

pokud odkazovaný prostředek neexistuje, chyba je raised.In naproti tomu subscribes se nezdaří, pokud není nalezen zdroj sourceresource.

časovač určuje bod během běhu klienta Chef Infra, při kterém je spuštěna anotifikace. K dispozici jsou následující časovače:

:before

Určuje, že akce na oznámený zdroje by měly být runbefore zpracování zdroj blok, ve kterém oznamovací umístěn.

:delayed

výchozí. Určuje, že oznámení by mělo být ve frontě, a thenexecuted na konci Chef Infra klienta běhu.

:immediate,:immediately

určuje, že oznámení by mělo být spuštěno okamžitě, oznámeno perresource.

syntaxe pro notifies je:

notifies :action, 'resource', :timer

subscribes

rubínový Typ: Symbol, ‚ Chef::Zdroj‘

zdroj může poslouchat jiný zdroj, a pak přijmout opatření, pokud státu zdroje, že poslouchal změny. Zadejte'resource', :action, které chcete provést, a poté :timer pro tuto akci.

Poznámka subscribes nevztahuje se na uvedené akci theresource, že to poslouchá – například:

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

V tomto případě subscribes nemovitosti načte nginx servicewhenever jeho soubor certifikátu, který se nachází pod/etc/nginx/ssl/example.crt, je aktualizován. subscribes neprovádí žádné změny v samotném souboru certifikátu, pouze poslouchá změnu souboru a provede akci :reload pro svůj zdroj (v tomto příkladu nginx), když je zjištěna změna.

pokud jiný zdroj neexistuje, předplatné nezvýší anerror. Porovnejte to s přísnější sémantikou notifies, kterázvýší chybu, pokud jiný zdroj neexistuje.

časovač určuje bod během běhu klienta Chef Infra, při kterém je spuštěna anotifikace. K dispozici jsou následující časovače:

:before

Určuje, že akce na oznámený zdroje by měly být runbefore zpracování zdroj blok, ve kterém oznamovací umístěn.

:delayed

výchozí. Určuje, že oznámení by mělo být ve frontě, a thenexecuted na konci Chef Infra klienta běhu.

:immediate,:immediately

určuje, že oznámení by mělo být spuštěno okamžitě, oznámeno perresource.

syntaxe pro subscribes je:

subscribes :action, 'resource', :timer

Stráže

stráž vlastnost může být použita k vyhodnocení stavu uzlu během popravčí fáze Kuchař Infra Klienta spustit. Na základě výsledků thisevaluation, stráž majetku je pak říkával Kuchař Infra Klienta, jestli by měla pokračovat v provádění zdroj. Vlastnost guard přijímá buď hodnotu řetězce nebo hodnotu bloku Ruby:

  • řetězec je spuštěn jako příkaz shellu. Pokud příkaz vrátí 0, použije se ochranný kryt. Pokud příkaz vrátí jinou hodnotu, pakvlastnost guard není použita. Stráže řetězců v apowershell_script spouštějí příkazy PowerShell systému Windows a mohou se vrátit true kromě 0.
  • blok je proveden jako Ruby kód, který musí vrátit buď true nebofalse. Pokud blok vrátí true, použije se vlastnost guard.Pokud blok vrátí false, vlastnost guard se nepoužije.

stráž vlastnost je užitečná pro zajištění, že zdroj je idempotentních, a to umožněním, že zdroj na test na požadovaného stavu, jak to je beingexecuted, a pak, pokud je to žádoucí stav je přítomen, pro Kuchaře InfraClient dělat nic.

Vlastnosti

následující vlastnosti lze použít k definování stráž, která je evaluatedduring provedení fáze Kuchař Infra Klienta spustit:

not_if

Zabránit zdrojů z vykonávající když podmínka vrací true.

only_if

Povolit spuštění zdroje pouze v případě, že podmínka vrátí true.

Příklady

následující příklady ukazují různé přístupy k použití launchd zdroj receptů:

Vytvořit Spuštění Daemon z kuchařky souboru



+