(name = 'remote-control')
| 83 | * - { status: 'stale' } — state file exists but PID is dead (auto-cleaned) |
| 84 | */ |
| 85 | export function queryDaemonStatus(name = 'remote-control'): { |
| 86 | status: DaemonStatus |
| 87 | state?: DaemonStateData |
| 88 | } { |
| 89 | const state = readDaemonState(name) |
| 90 | if (!state) { |
| 91 | return { status: 'stopped' } |
| 92 | } |
| 93 | |
| 94 | if (isProcessAlive(state.pid)) { |
| 95 | return { status: 'running', state } |
| 96 | } |
| 97 | |
| 98 | // Stale — process is dead but state file remains |
| 99 | removeDaemonState(name) |
| 100 | return { status: 'stale' } |
| 101 | } |
| 102 | |
| 103 | /** |
| 104 | * Stop a running daemon by sending SIGTERM, waiting, then SIGKILL if needed. |
no test coverage detected