Arka Plan Exec + Process Aracı
OpenClaw kabuk komutlarınıexec aracı üzerinden çalıştırır ve uzun süre çalışan görevleri bellekte tutar. process aracı bu arka plan oturumlarını yönetir.
exec aracı
Temel parametreler:command(zorunlu)yieldMs(varsayılan 10000): bu gecikmeden sonra otomatik olarak arka plana alırbackground(bool): hemen arka plana altimeout(saniye, varsayılan 1800): bu zaman aşımından sonra süreci sonlandırelevated(bool): elevated mode etkinse/izin veriliyorsa sandbox dışında çalıştır (exechedefinodeolduğunda varsayılan olarakgatewayveyanode)- 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 tail döndürür. - Çıktı, oturum yoklanana veya temizlenene kadar bellekte tutulur.
processaracına izin verilmiyorsaexeceşzamanlı çalışır veyieldMs/backgrounddeğerlerini yok sayar.- Başlatılan exec komutları, bağlama duyarlı shell/profile 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 tamamlama uyandırmasına güvenin.
- Otomatik tamamlama uyandırması kullanılamıyorsa veya çıktı üretmeden temiz şekilde tamamlanan bir komut için sessiz başarı onayı gerekiyorsa, tamamlanmayı doğrulamak için
processkullanın. sleepdöngüleri veya tekrarlanan yoklama ile hatırlatıcıları ya da gecikmeli takipleri taklit etmeyin; gelecekteki işler için cron kullanın.
Alt süreç köprüleme
Uzun süre çalışan alt süreçleri exec/process araçları dışında başlatırken (örneğin CLI yeniden başlatmaları veya gateway yardımcıları), sonlandırma sinyallerinin iletilmesi ve çıkış/hata durumunda dinleyicilerin ayrılması için child-process bridge yardımcı işlevini ekleyin. Bu, systemd altında sahipsiz süreçleri önler ve kapanış davranışını platformlar arasında tutarlı tutar. Ortam değişkeni geçersiz kılmaları:PI_BASH_YIELD_MS: varsayılan yield (ms)PI_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)PI_BASH_JOB_TTL_MS: tamamlanmış oturumlar için TTL (ms, 1 dk–3 sa ile sınırlı)
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ı kuyruğa ekler + heartbeat ister.tools.exec.notifyOnExitEmptySuccess(varsayılan false): true olduğunda, çıktı üretmemiş başarılı arka plan çalıştırmaları için de tamamlama olaylarını kuyruğa ekler.
process aracı
Eylemler:list: çalışan + tamamlanmış oturumlarpoll: bir oturum için yeni çıktıyı boşaltır (ayrıca çıkış durumunu da bildirir)log: birikmiş çıktıyı okur (offset+limitdestekler)write: stdin gönderir (data, isteğe bağlıeof)send-keys: PTY destekli bir oturuma açık anahtar token’ları veya baytlar gönderirsubmit: PTY destekli bir oturuma Enter / carriage return gönderirpaste: isteğe bağlı olarak bracketed paste mode ile sarılmış düz metin gönderirkill: bir arka plan oturumunu sonlandırırclear: tamamlanmış bir oturumu bellekten kaldırırremove: çalışıyorsa sonlandırır, tamamlanmışsa temizler
- Yalnızca arka plana alınmış oturumlar listelenir/bellekte kalıcı tutulur.
- Süreç yeniden başlatıldığında oturumlar kaybolur (diske kalıcılık yok).
- Oturum günlükleri yalnızca
process poll/logçalıştırırsanız ve araç sonucu kaydedilirse sohbet geçmişine kaydedilir. process, aracı başına kapsamlıdır; yalnızca o aracı tarafından başlatılan oturumları görür.- Durum, günlükler, sessiz başarı onayı veya otomatik tamamlama uyandırması kullanılamadığında tamamlama onayı için
poll/logkullanın. - Girdi veya müdahale gerektiğinde
write/send-keys/submit/paste/killkullanın. process list, hızlı taramalar için türetilmiş birnameiçerir (komut fiili + hedef).process log, satır tabanlıoffset/limitkullanır.- Hem
offsethemlimitatlandığında son 200 satırı döndürür ve sayfalama ipucu içerir. offsetveriliplimitverilmediğindeoffsetdeğerinden sona kadar döndürür (200 ile sınırlandırılmaz).- Yoklama, bekleme döngüsü zamanlaması için değil, isteğe bağlı durum kontrolü içindir. İşin daha sonra yapılması gerekiyorsa bunun yerine cron kullanın.