8. How it works inside
8.3 Background processes
What starts with the app, what stops when you close it, and why no programs stay running without your knowledge.
In short
- When you open Atollo only the things you asked for start: the databases and servers with “Start with Atollo”.
- Every program started by the kit is tied to the app: if the app closes, even in the worst way, they close with it.
- Only one window per kit folder: opening it again brings the existing one to the front.
At start
- FoldersCreates projects and data if they are missing and checks that it can write.
- PlaceNotices if the kit has been moved and takes note.
- EnvironmentReads Settings and builds the kit's environment.
- WindowOnly one per folder; then it opens the window.
- BackgroundStarts what is marked “Start with Atollo”, syncs the agents and Git, checks for updates.
- Database servers and web server profiles with “Start with Atollo” start right after opening.
- Missing required components and those to reinstall are installed automatically; not at the first start: there everything is downloaded only with “Install” on the “Welcome” page.
- The agents' instructions, skills and MCP servers are synced; if the kit has been moved, the paths are updated.
- Git follows the kit folder (safe.directory) and the GitHub account: if “Who signs the commits” is empty, the name and private address come from the account.
- After 10 seconds, the versions each source offers, for the menus that download one (at most once a day); then, with “Automatic update” on, the latest version of each installed component, for the “Updates” pane of Tools (also at most once a day).
- After 20 seconds, if turned on, the check for Atollo updates (turning “Automatic update” off before then stops it).
While you work
| What | When it starts | When it stops |
|---|---|---|
| Project actions | With “Start” or ▶ | With “Stop”, or when the app closes |
| Shared web servers | With the first project that uses them, from the Web Servers page or with “Start with Atollo” | With the last project, unless started from the Web Servers page or with “Keep running even without projects”; with “Stop”; on closing |
| Databases | With “Start”, “Start with Atollo” or when a project asks for them | With “Stop”, or on closing (orderly shutdown) |
| Editor | With the first “Editor” | When the app closes |
| Consoles and agents | With “Terminal”, “Open”, the agent logos | When you close them, or when the app closes |
| Local models server | With “Start”, “Start with Atollo” or by opening Pi on a local model | With “Stop”, “Stop everything”, or on closing; a model leaves the memory after ten minutes without requests |
Closing a console does not shut down the databases: they stay on until you stop them or close the app. The Activity panel (from the status bar) lists the project actions, every running database version, the active pools and the local models server; “Stop everything” stops them after a confirmation.
On closing
If something is open, Atollo asks “Close Atollo?” with the list; “Close everything” stops the actions, the web servers and the local models server and shuts down the databases neatly, then exits. Before unplugging the drive use Safely removing the drive (7.1).
Under the hood
- On Windows all the kit's programs live in a Job Object with the “kill on close” option: if the app ends in any way, Windows closes them too. The editor and actions have their own Job, inside the app's.
- On macOS and Linux a small watchdog process notices if the app dies and closes the kit's process groups (SIGTERM, then SIGKILL after 5 seconds).
- The single instance uses an identifier derived from the kit folder (a mutex on Windows, a lock on macOS and Linux): two different kits do not get in each other's way.
- Every port has only one owner: a pool (by default 8081 to 8999), a database version, a project action (by default 7100 to 7999), the local models server (9931 and the following ones); 7000 to 7099 belong to the editor. A port already taken is refused with the name of whoever holds it (for example “Port 3306 already belongs to database MySQL 8.4: choose another one.”), and a new pool's automatic port avoids them all.
- Every version of a database keeps its own port, also when you change the server's version; two starts of the same version run only one server, on the same port.
- The browser and File Explorer are opened outside the Job: they stay open even after Atollo closes.
- On closing, if an update is ready, the executable is replaced.