Spuštění příkazu shellu
Požádejte Chettyho o spuštění příkazu a vězte, kde běží, jak dlouho smí trvat a co se stane, když mu dojde čas.
Než začnete
Plugin terminal musí být přidělen Vašemu účtu; přečtěte si Přidělení pluginu účtu.
Kde příkaz běží
Chetty zjišťuje přístup k příkazům při každém spuštění přes plugin Sandbox.
- V konverzaci s Projektem se příkazy řídí přístupovou politikou Projektu a začínají v kořeni Projektu.
- Ve spravovaném Projektu běží v prostředí daného Projektu.
- Konverzace mířící do jiného adresáře, například do Git worktree, běží tam.
Pokud Sandbox není dostupný, spouštění ve spravovaném Projektu se odmítne. Explicitní režim přímého hostitele smí použít jen vlastník instance a blokující restart démona Chettyho nebo požadavek obejít Sandbox se odmítne.
Zachovejte pracovní adresář
Pracovní adresář se přenáší z jednoho úspěšného příkazu na popředí do dalšího.
- Předejte
cwd, chcete-li příkaz spustit v daném adresáři. - Když příkaz úspěšně skončí, adresář, ve kterém skončil, se stane pracovním adresářem dalších volání.
Proměnné a funkce shellu se mezi voláními nepřenášejí. V CLI mění pracovní adresář konverzace /cd a argument cwd ho na jedno volání přepíše.
Počkejte na příkaz
Volání Bash na popředí čeká nejvýše timeout v milisekundách: 120 000 ve výchozím nastavení a nejméně 1. Obvyklé maximum je 600 000.
Když ve vlastní interaktivní konverzaci vyprší lhůta, Chetty příkaz obvykle přesune na pozadí a vrátí jeho ID procesu. Běží dál bez další lhůty a výstup si můžete přečíst později.
To se nestane u příkazu schváleného v dotazu na oprávnění, když je limit procesů na pozadí plný, ani u sdílených místností, delegované, workflow, naplánované a jiné práce bez relace; takové příkazy se po vypršení lhůty zastaví. V CLI můžete běžící příkaz na popředí odpojit sami stisknutím Ctrl+B a jeho výstup zůstane dostupný přes nástroje pro procesy.
Admin: Na vlastní instalaci nastavte
bashDefaultTimeoutMsabashMaxTimeoutMsvharness.jsonv adresáři instance a potom restartujte démona. Obě hodnoty jsou v milisekundách v rozsahu 1–900000 a maximum musí být nejméně rovné výchozí hodnotě.
Nevyčkávejte pomocí sleep
Příkaz, který je jen sleep s dobou dvě sekundy a více, se na popředí odmítne, například sleep 2 nebo sleep 5m, protože tráví tah čekáním.
Skutečnou práci spusťte s run_in_background: true a počkejte na ni nástrojem ProcessOutput. Příkaz, který dělá víc než spí, třeba sleep 19; tail build.log, je povolený, stejně jako spánek kratší než dvě sekundy.
Když příkaz neskončí
- Lhůta vypršela: ve sdílené místnosti, delegované práci nebo naplánované úloze se příkaz zastaví. Dlouhou práci spouštějte na pozadí.
- Příkaz se odmítl: izolovaný účet na danou cestu nedosáhne nebo Sandbox není dostupný.
- Pracovní adresář je jiný, než čekáte: předejte pro jedno volání
cwdvýslovně. - Ztratili jste výstup: příkaz přesunutý na pozadí si ho ponechá; přečtěte ho nástrojem
ProcessOutput.
Související návody
Přehled terminálu, Správa procesů na pozadí, Spuštění příkazu na pozadí, Přehled Projektů.