Home stops when the terminal or SSH session that started it closes

Aperta
#518 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
18/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
linux, macos, rust

Direzione di ricerca

Read draft #350 and its failed service-removal CI run, then compare the nine changed files against current develop. Trace install locks, data paths, the update controller, and the recovery journal before implementing the Linux systemd user service and macOS LaunchAgent behavior. Run the acceptance journeys on Linux x86-64, Jetson, and macOS; done means service lifecycle, autostart, update/undo, recovery, and uninstall all meet the listed checks.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

documentation enhancement

Problem

In 2.0.0, Home runs only while the terminal that started it stays open. Closing the terminal, or the SSH session on a Jetson or Linux server, stops Home, and updates stop arriving too. The only workaround is tmux or screen.

Expected behaviour

  • The installer registers Home as a background service for the current user (systemd user service on Linux, LaunchAgent on macOS) and starts it.
  • elastos home and elastos home --browser open the running Home, starting it if needed. Closing them leaves Home running.
  • Stop ends the running Home. Autostart on/off changes only Home's own service, never account-wide settings; opening Home with autostart off does not turn it back on.
  • Status shows starting, ready, stopped or failed, with the reason. Ready means this installation's Home and its update controller run, not just that a port answers.
  • If the service cannot start, Home shows the failure and one repair step instead of quietly running in the terminal. Terminal mode stays as an explicit diagnostic option.
  • Update, Undo and interrupted-update recovery never leave two Runtimes or a restart loop.

Scope

Carry the needed behaviour from draft #350 onto current develop: 9 of its 11 files have changed since, and its last CI run failed the service-removal tests. Recheck install locks, data paths, the update controller and the recovery journal. Drop the terminal fall-back; add autostart on/off.

macOS: a LaunchAgent survives closing Terminal but not logout, and starts only at login. Running with nobody logged in needs a system daemon and a separate review.

Docs (INSTALL.md): what keeps running and when; the computer must stay awake; closing an SSH tunnel disconnects the browser but does not stop Home.

Acceptance

On Linux x86-64, Jetson and macOS:

  • Install, close the terminal or SSH session, reconnect: Home works.
  • Kill the Runtime: the service restarts it.
  • Stop: Home stays stopped until opened or the next login.
  • Autostart off: Home does not start at login; elastos home --browser still opens it.
  • Update and Undo: one Runtime afterwards, service still registered.
  • Interrupted update: recovery completes once, no loop.
  • Uninstall removes only this installation's service; data kept unless asked.
  • Linux: the sub-issue's logout and reboot journeys pass.

Out of scope

Tray or desktop app (#394). Isolation and service limits (#183).

Links

#350, failed CI run https://github.com/elastos/elastos-runtime/actions/runs/38211869253, #183, #394.

Lingua principale
Rust
Stelle
6
Fork
2
Merge medio
1g 3h
PR unite (30g)
42

Preparare l'ambiente

Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di elastos/elastos-runtime

Tutte le issue di elastos/elastos-runtime

Issue simili

Altre issue su Rust

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.