exec aracı üzerinden çalıştırır ve uzun süren görevleri bellekte tutar. process aracı bu arka plan oturumlarını yönetir.
exec aracı
Temel parametreler:command(gerekli)yieldMs(varsayılan 10000): bu gecikmeden sonra otomatik olarak arka plana albackground(bool): hemen arka plana altimeout(saniye, varsayılantools.exec.timeoutSec): bu zaman aşımından sonra süreci sonlandır; yalnızca o çağrı için exec süreç zaman aşımını devre dışı bırakmak üzeretimeout: 0ayarlayınelevated(bool): yükseltilmiş mod etkin/izinli ise sandbox dışında çalıştır (gatewayvarsayılandır veya exec hedefinodeolduğundanode)- Gerçek bir TTY mi gerekiyor?
pty: trueayarlayın. workdir,env
- Ön plan çalıştırmaları çıktıyı doğrudan döndürür.
- Arka plana alındığında (açıkça veya zaman aşımıyla), araç
status: "running"+sessionIdve kısa bir son çıktı döndürür. - Arka plan ve
yieldMsçalıştırmaları, çağrı açık birtimeoutsağlamadığı sürecetools.exec.timeoutSecdeğerini devralır. - Çıktı, oturum yoklanana veya temizlenene kadar bellekte tutulur.
processaracına izin verilmiyorsa,execeşzamanlı çalışır veyieldMs/backgrounddeğerlerini yok sayar.- Başlatılan exec komutları, bağlama duyarlı shell/profil kuralları için
OPENCLAW_SHELL=execalır. - Şimdi başlayan uzun süreli işler için işi bir kez başlatın ve etkin olduğunda komut çıktı ürettiğinde veya başarısız olduğunda otomatik tamamlanma uyandırmasına güvenin.
- Otomatik tamamlanma uyandırması kullanılamıyorsa veya çıktı üretmeden temiz şekilde çıkan bir komut için sessiz başarı
onayına ihtiyacınız varsa, tamamlanmayı doğrulamak için
processkullanın. - Hatırlatıcıları veya gecikmeli takipleri
sleepdöngüleri ya da tekrarlı yoklamayla taklit etmeyin; gelecekteki işler için Cron kullanın.
Alt süreç köprüleme
exec/process araçları dışında uzun süreli alt süreçler başlatırken (örneğin, CLI yeniden başlatmaları veya Gateway yardımcıları), sonlandırma sinyallerinin iletilmesi ve dinleyicilerin çıkışta/hatada ayrılması için alt süreç köprü yardımcısını ekleyin. Bu, systemd üzerinde yetim süreçleri önler ve kapatma davranışını platformlar arasında tutarlı tutar. Ortam geçersiz kılmaları:OPENCLAW_BASH_YIELD_MS: varsayılan bekleme (ms)OPENCLAW_BASH_MAX_OUTPUT_CHARS: bellek içi çıktı sınırı (karakter)OPENCLAW_BASH_PENDING_MAX_OUTPUT_CHARS: akış başına bekleyen stdout/stderr sınırı (karakter)OPENCLAW_BASH_JOB_TTL_MS: tamamlanan oturumlar için TTL (ms, 1 dk-3 sa ile sınırlı)OPENCLAW_PROCESS_INPUT_WAIT_IDLE_MS: yazılabilir arka plan oturumları büyük olasılıkla girdi bekliyor olarak işaretlenmeden önceki boşta çıktı eşiği (varsayılan 15000 ms)
tools.exec.backgroundMs(varsayılan 10000)tools.exec.timeoutSec(varsayılan 1800)tools.exec.cleanupMs(varsayılan 1800000)tools.exec.notifyOnExit(varsayılan true): arka plana alınmış bir exec çıktığında bir sistem olayını kuyruğa alır + heartbeat ister.tools.exec.notifyOnExitEmptySuccess(varsayılan false): true olduğunda, çıktı üretmeyen başarılı arka plan çalıştırmaları için de tamamlanma olaylarını kuyruğa alır.
process aracı
Eylemler:list: çalışan + tamamlanan oturumlarpoll: bir oturum için yeni çıktıyı boşalt (çıkış durumunu da bildirir)log: birleştirilmiş çıktıyı oku ve girdi kurtarma ipuçlarını göster (offset+limitdestekler)write: stdin gönder (data, isteğe bağlıeof)send-keys: PTY destekli bir oturuma açık anahtar belirteçleri veya baytlar göndersubmit: PTY destekli bir oturuma Enter / satır başı gönderpaste: düz metin gönder, isteğe bağlı olarak bracketed paste modunda sarılıkill: bir arka plan oturumunu sonlandırclear: tamamlanmış bir oturumu bellekten kaldırremove: çalışıyorsa sonlandır, aksi halde tamamlandıysa temizle
- Yalnızca arka plana alınmış oturumlar listelenir/bellekte kalıcı tutulur.
- Oturumlar süreç yeniden başlatıldığında kaybolur (disk kalıcılığı yoktur).
- Oturum günlükleri yalnızca
process poll/logçalıştırırsanız ve araç sonucu kaydedilirse sohbet geçmişine kaydedilir. processajan başına kapsamlanır; yalnızca o ajan tarafından başlatılan oturumları görür.- Durum, günlükler, sessiz başarı onayı veya otomatik tamamlanma uyandırması kullanılamadığında
tamamlanma onayı için
poll/logkullanın. - Etkileşimli bir CLI’ı kurtarmadan önce
logkullanın; böylece mevcut döküm, stdin durumu ve girdi bekleme ipucu birlikte görünür. - Girdi veya müdahale gerektiğinde
write/send-keys/submit/paste/killkullanın. process list, hızlı taramalar için türetilmiş birname(komut fiili + hedef) içerir.process list,pollvelog,waitingForInputdeğerini yalnızca oturumun hâlâ yazılabilir stdin’i olduğunda ve girdi bekleme eşiğinden daha uzun süre boşta kaldığında bildirir.process log, satır tabanlıoffset/limitkullanır.- Hem
offsethemlimitatlandığında, son 200 satırı döndürür ve bir sayfalama ipucu içerir. offsetsağlanıplimitatlandığında,offsetdeğerinden sona kadar döndürür (200 ile sınırlandırılmaz).- Yoklama isteğe bağlı durum içindir, bekleme döngüsü zamanlama için değildir. İş daha sonra gerçekleşmeliyse bunun yerine Cron kullanın.