Files
start-os/core
Aiden McClelland 456c5d6725 fix: graceful shutdown for subcontainer daemons
Two issues fixed:

1. Process group cascade: exec-command processes inherited the
   container runtime's process group. When an entrypoint script
   did kill(0, SIGTERM) during shutdown, it signaled ALL processes
   in the group — including other subcontainers' launch wrappers,
   causing their PID namespaces to collapse. Fixed by calling
   setsid() in exec-command's pre_exec to isolate each service
   in its own process group.

2. Unordered daemon termination: removeChild("main") fired
   onLeaveContext callbacks for all Daemon.of() instances
   simultaneously, bypassing Daemons.term()'s reverse-dependency
   ordering. Fixed by having Daemons.build() mark individual
   daemons as managed (suppressing their onLeaveContext) and
   registering a single onLeaveContext that calls the ordered
   Daemons.term(). The term() method is deduplicated so
   system.stop() and onLeaveContext share the same shutdown.
2026-03-21 18:20:50 -06:00
..
2025-12-22 13:39:38 -07:00
2025-12-31 11:30:57 -07:00
2026-03-20 08:50:54 -06:00
2026-03-20 08:37:36 -06:00
2025-11-07 10:12:05 +00:00
2025-12-22 13:39:38 -07:00

StartOS Backend

Structure

  • startos: This contains the core library for StartOS that supports building startbox.
  • helpers: This contains utility functions used across both startos and js-engine
  • models: This contains types that are shared across startos, js-engine, and helpers

Artifacts

The StartOS backend is packed into a single binary startbox that is symlinked under several different names for different behavior:

  • startd: This is the main daemon of StartOS
  • start-cli: This is a CLI tool that will allow you to issue commands to startd and control it similarly to the UI
  • start-sdk: This is a CLI tool that aids in building and packaging services you wish to deploy to StartOS

Documentation