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
, aworking_directory
jsou vlastnosti k dispozici pro tento zdroj.
akce
zdroj launchd má následující akce:
:create
výchozí. Vytvořte seznam vlastností launchd.:create_if_missing
Vytvořte seznam vlastností launchd, pokud již neexistuje.:delete
Smazat seznam vlastností launchd. Tím se uvolní démon nebo agent, pokud je načten.:disable
zakázat seznam vlastností launchd.:enable
Vytvoř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.:nothing
tento 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.:restart
restartujte démona nebo agenta spravovaného launchd.
Vlastnosti
launchd zdroj má následující vlastnosti:
abandon_process_group
Ruby 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.
backup
Typ 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.
cookbook
Rubínový Typ: Řetězec
název kuchařky, ve které jsou umístěny zdrojové soubory.
group
Ruby 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.
label
Ruby Type: String
jedinečný identifikátor úlohy.
mode
Typ 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
.
owner
Rubí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
nebouser@domain
. 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).
path
Ruby Type: String
cesta k adresáři. Použití plně kvalifikované cesty jedoporučeno, ale není vždy nutné. Výchozí hodnota: name
bloku prostředků. Viz část „syntaxe“ výše pro dalšíinformace.
plist_hash
Rubínový Typ: Hash
Hash párů klíčových hodnot použitých k vytvoření seznamu vlastností launchd.
session_type
Ruby Type: String
Typ launchd plist, který má být vytvořen. Možné hodnoty: system
(výchozí) nebo user
.
source
Ruby Type: String
cesta k seznamu vlastností launchd.
type
Typ Ruby: řetězec
typ zdroje. Možné hodnoty: daemon
(výchozí), agent
.
abandon_process_group
Typ 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.
debug
Rubínový Typ: true, false
nastaví masku protokolu na LOG_DEBUG
pro tuto úlohu.
disabled
Typ Ruby: true, false / Default Value:false
naznačuje launchctl
, že tuto úlohu nepředloží launchd.
enable_globbing
Typ Ruby: true, false
Aktualizujte argumenty programu před vyvoláním.
enable_transactions
Typ Ruby: true, false
Sledujte probíhající transakce; pokud žádné nejsou, odešlete signál SIGKILL
.
environment_variables
Ruby Type: Hash
další proměnné prostředí, které se mají nastavit před spuštěním úlohy.
exit_timeout
Ruby Type: Integer
množství času (v sekundách) launchd čeká před odesláním signálu SIGKILL
.
hard_resource_limits
Typ Ruby: Hash
Hash limitů prostředků, které mají být uloženy na úlohu.
inetd_compatibility
Ruby 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í accept
systémového volání jménem úlohy a poté předejte standardní deskriptory vstupních, výstupních a chybových souborů.
init_groups
Typ Ruby: true, false
Určete, zda je před spuštěním úlohy voláno initgroups
.
keep_alive
Rubí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_events
Ruby 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_once
Ruby 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_hosts
Rubí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_hosts
Ruby Type: Array
pole hostitelů, na které se tento konfigurační soubor vztahuje.
limit_load_to_session_type
Ruby Type: Array, String
typy relací, na které se tento konfigurační soubor vztahuje.
low_priority_io
Ruby 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.
nice
Ruby Type: Integer
hodnota priority plánování programu v rozsahu -20
až 20
.
on_demand
Typ 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_type
Typ Ruby: řetězec
zamýšlený účel úlohy: Adaptive
, Background
, Interactive
, nebo Standard
.
program
Ruby 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_arguments
Rubí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_directories
Ruby Type: Array
pole neprázdných adresářů, které, pokud jsou některé upraveny, způsobí spuštění úlohy.
root_directory
Ruby Type: String
chroot
do tohoto adresáře a spusťte úlohu.
run_at_load
Typ Ruby: true, false
spusťte úlohu jednou (v době, kdy je načtena).
sockets
Ruby Type: Hash
Hash soketů na vyžádání, které upozorňují launchd, kdy má být úloha spuštěna.
soft_resource_limits
Rubínový Typ: Pole
Hash limitů prostředků, které mají být uloženy na úlohu.
standard_error_path
Typ Ruby: řetězec
soubor, do kterého je odeslána standardní chyba (stderr
).
standard_in_path
Typ Ruby: řetězec
soubor, do kterého je odeslán standardní vstup (stdin
).
standard_out_path
Typ Ruby: řetězec
soubor, na který je odeslán standardní výstup (stdout
).
start_calendar_interval
Ruby 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_interval
Rubínový Typ: Celé číslo
frekvence (v sekundách), při které je úloha spuštěna.
start_on_mount
Typ Ruby: true, false
spusťte úlohu při každém připojení systému souborů.
throttle_interval
Typ Ruby: Integer / Default Value:10
frekvence (v sekundách), při které se úlohy mohou plodit.
time_out
Ruby 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.
umask
Typ Ruby: celé číslo
desetinná hodnota, kterou před spuštěním úlohy předáte umask
.
username
Rubí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_paths
Ruby Type: Array
pole cest, které, pokud jsou některé upraveny, způsobí spuštění úlohy.
working_directory
Ruby 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átittrue
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