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
- CartelleCrea projects e data se mancano e controlla di poter scrivere.
- PostoSi accorge se il kit è stato spostato e lo annota.
- AmbienteLegge le Impostazioni e costruisce l'ambiente del kit.
- FinestraUna sola per cartella; poi apre la finestra.
- 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 cosa | Quando parte | Quando si ferma |
|---|---|---|
| Azioni dei progetti | Con «Avvia» o ▶ | Con «Ferma», o alla chiusura dell'app |
| Server web condivisi | Con 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 |
| Database | Con «Avvia», «Avvia con Atollo» o quando un progetto li chiede | Con «Ferma», o alla chiusura (arresto ordinato) |
| Editor | Con il primo «Editor» | Alla chiusura dell'app |
| Console e agenti | Con «Terminale», «Apri», i loghi degli agenti | Quando le chiudi, o alla chiusura dell'app |
| Server dei modelli locali | Con «Avvia», «Avvia con Atollo» o aprendo Pi su un modello locale | Con «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.