LlamaProcessManager

Gestisce il ciclo di vita di un processo del sistema operativo LLAMA-Server locale.

Responsabilità:

  • Avvio del processo del server con una riga di comando fornita dal chiamante

  • Catturare stdout/stderr sui thread del demone

  • Interrogazione dell'endpoint "/health" finché il server non è pronto

  • Graceful + spegnimento forzato

  • Trovare una porta TCP libera

Parameters

log

Logging callback (LogLevel, message).

Constructors

Link copied to clipboard
constructor(log: (CodBi.LogLevel, String) -> Unit)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

The running server process, or null if not started.

Functions

Link copied to clipboard
fun findFreePort(preferredPort: Int): Int

Trova una porta TCP libera a partire da preferredPort. Sonde verso l'alto (fino a 20 tentativi) fino a quando un viene trovata la porta disponibile. Ricade su una porta temporanea assegnata dal sistema operativo se tutte le porte analizzate lo sono Occupato.

Link copied to clipboard

Returns true if the server process is alive.

Link copied to clipboard
fun launchProcess(command: List<String>, workingDir: File, port: Int): Boolean

Avvia il processo LLAMA-Server e attende che diventi integro.

Link copied to clipboard

Arresta il processo del server con garbo. Prova prima destroy(), poi destroyForcibly() dopo a tempo scaduto.