A cross-platform Node.js library for retrieving process ancestry information. Get the parent process chain for any process ID on Unix/Linux, macOS, and Windows systems.
- Cross-platform: Works on Unix/Linux/macOS (using
ps) and Windows (usingwmic) - Robust: Includes timeout handling, cycle detection, and comprehensive error handling
- TypeScript: Full TypeScript support with type definitions
- Zero dependencies: No external dependencies beyond Node.js built-ins
- ESM: Native ES module support
npm install process-ancestryimport { getProcessAncestry } from "process-ancestry";
// Get ancestry for current process
const ancestry = getProcessAncestry();
console.log(ancestry);
// Get ancestry for specific PID
const ancestry = getProcessAncestry(1234);
console.log(ancestry);[
{
pid: 1234,
ppid: 5678,
command: "node script.js",
},
{
pid: 5678,
ppid: 1,
command: "bash",
},
];Retrieves the process ancestry chain for a given process ID.
pid(optional): Process ID to get ancestry for. Defaults toprocess.pid(current process).
An array of ProcessInfo objects representing the process ancestry chain, ordered from the given process up to the root.
Error: Ifpidis not a positive integer
interface ProcessInfo {
/** Process ID */
pid: number;
/** Parent Process ID */
ppid: number;
/** Command line or executable name */
command?: string;
}- Unix/Linux/macOS: Uses
ps -p <pid> -o pid=,ppid=,command= - Windows: Uses
wmic process where (ProcessId=<pid>) get ProcessId,ParentProcessId,CommandLine /format:csv
# Install dependencies
pnpm install
# Run tests
pnpm test
# Build
pnpm build
# Run checks
pnpm checkMIT
Matt Kane