import { spawn } from 'node:child_process' import { writeFile } from 'node:fs/promises' const [statePath] = process.argv.slice(2) if (statePath === undefined) throw new Error('usage: managed-tree.ts ') process.on('SIGTERM', () => {}) process.on('SIGHUP', () => {}) const descendant = spawn(process.execPath, [ '-e', 'process.on("SIGTERM",()=>{});process.on("SIGHUP",()=>{});setInterval(()=>{},60_000)', ], { stdio: 'ignore' }) if (descendant.pid === undefined) throw new Error('managed descendant did not publish a pid') await writeFile(statePath, JSON.stringify({ root: process.pid, descendant: descendant.pid })) setInterval(() => {}, 60_000)