8. Come funziona dentro

8.3 Processi in background

Che cosa parte con l'app, che cosa si ferma quando la chiudi, e perché non restano programmi accesi a tua insaputa.

In breve

  • Quando apri Atollo partono solo le cose che hai chiesto: i database e i server con «Avvia con Atollo».
  • Ogni programma avviato dal kit è legato all'app: se l'app si chiude, anche nel modo peggiore, si chiudono con lei.
  • Una sola finestra per cartella del kit: aprirla di nuovo porta in primo piano quella esistente.

All'avvio

  1. CartelleCrea projects e data se mancano e controlla di poter scrivere.
  2. PostoSi accorge se il kit è stato spostato e lo annota.
  3. AmbienteLegge le Impostazioni e costruisce l'ambiente del kit.
  4. FinestraUna sola per cartella; poi apre la finestra.
  5. SottofondoAvvia ciò che è segnato «Avvia con Atollo», allinea gli agenti e Git, controlla aggiornamenti.
  • I server di database e i profili dei server web con «Avvia con Atollo» partono subito dopo l'apertura.
  • I componenti obbligatori mancanti e quelli da reinstallare vengono installati da soli; al primo avvio no: lì si scarica tutto solo con «Installa» della pagina «Benvenuto».
  • Istruzioni, skill e server MCP degli agenti vengono allineati; se il kit è stato spostato, i percorsi vengono aggiornati.
  • Git segue la cartella del kit (safe.directory) e l'account GitHub: se «Chi firma i commit» è vuoto, nome e indirizzo privato vengono dall'account.
  • Dopo 10 secondi, le versioni offerte da ogni fonte, per i menu che ne scaricano una (al massimo una volta al giorno); poi, con «Aggiornamento automatico» attivo, l'ultima versione di ogni componente installato, per il riquadro «Aggiornamenti» di Strumenti (anche questa al massimo una volta al giorno).
  • Dopo 20 secondi, se attivo, il controllo degli aggiornamenti di Atollo (spegnere «Aggiornamento automatico» prima lo ferma).

Mentre lavori

Che cosaQuando parteQuando si ferma
Azioni dei progettiCon «Avvia» o ▶Con «Ferma», o alla chiusura dell'app
Server web condivisiCon il primo progetto che li usa, dalla pagina Server Web o con «Avvia con Atollo»Con l'ultimo progetto, salvo se avviati dalla pagina Server Web o con «Mantieni attivo anche senza progetti»; con «Ferma»; alla chiusura
DatabaseCon «Avvia», «Avvia con Atollo» o quando un progetto li chiedeCon «Ferma», o alla chiusura (arresto ordinato)
EditorCon il primo «Editor»Alla chiusura dell'app
Console e agentiCon «Terminale», «Apri», i loghi degli agentiQuando le chiudi, o alla chiusura dell'app
Server dei modelli localiCon «Avvia», «Avvia con Atollo» o aprendo Pi su un modello localeCon «Ferma», «Ferma tutto», o alla chiusura; un modello lascia la memoria dopo dieci minuti senza richieste

Chiudere una console non spegne i database: restano accesi finché non li fermi o chiudi l'app. Il pannello Attività (dalla barra di stato) elenca le azioni dei progetti, ogni versione di database avviata, i pool attivi e il server dei modelli locali; «Ferma tutto» li ferma dopo una conferma.

Alla chiusura

Se qualcosa è aperto, Atollo chiede «Chiudere Atollo?» con l'elenco; «Chiudi tutto» ferma le azioni, i server web e il server dei modelli locali e spegne con ordine i database, poi esce. Prima di staccare l'unità usa Rimuovere l'unità in sicurezza (7.1).

Sotto il cofano
  • Su Windows tutti i programmi del kit vivono in un Job Object con l'opzione «chiudi alla chiusura»: se l'app termina in qualsiasi modo, Windows chiude anche loro. Editor e azioni hanno un Job loro, dentro quello dell'app.
  • Su macOS e Linux un piccolo processo di guardia si accorge se l'app muore e chiude i gruppi di processi del kit (SIGTERM, poi SIGKILL dopo 5 secondi).
  • L'istanza unica usa un identificativo ricavato dalla cartella del kit (un mutex su Windows, un lock su macOS e Linux): due kit diversi non si disturbano.
  • Ogni porta ha un solo proprietario: un pool (di base da 8081 a 8999), una versione di database, un'azione di un progetto (di base da 7100 a 7999), il server dei modelli locali (9931 e seguenti); da 7000 a 7099 sono dell'editor. Una porta già presa viene rifiutata con il nome di chi la tiene (per esempio «La porta 3306 è già del database MySQL 8.4: scegline un'altra.»), e la porta automatica di un nuovo pool le evita tutte.
  • Ogni versione di un database tiene la sua porta, anche quando cambi la versione del server; due avvii della stessa versione fanno partire un solo server, sulla stessa porta.
  • Browser ed Esplora file vengono aperti fuori dal Job: restano aperti anche dopo la chiusura di Atollo.
  • Alla chiusura, se c'è un aggiornamento pronto, l'eseguibile viene sostituito.