Linux from Zero #2 Processes: what's actually running under your terminal A developer's blog series 'Linux from Zero' explains how to interpret the output of the `ps` command to understand process states and parent-child relationships. The post uses a `sleep` process as an example to illustrate PID, PPID, STAT, and ETIME columns, and discusses how process states like 'D' (uninterruptible sleep) can indicate storage problems. It also touches on how process isolation relates to containers and Kubernetes. Part 2 of the "Linux from Zero" series. If you haven't read 1 yet, it's on Medium and DEV.to — start there to understand the approach: investigate through evidence, not by memorizing commands. Have you ever run ps aux and watched a huge list of lines scroll by, without really knowing what to do with it? Most tutorials teach you the command, but not how to think about what it returns. This post is about exactly that: turning a list of numbers into reasoning about what your machine is actually doing. Open two terminals side by side. In the first one, run: sleep 300 & This creates a process that just "sleeps" for 300 seconds — doing nothing useful, on purpose, so it can be our test subject. In the second terminal, run: ps -eo pid,ppid,stat,etime,cmd | grep sleep You'll see a line similar to this: PID PPID STAT ELAPSED CMD 12345 9876 S 0:03 sleep 300 Now the question that actually matters: what is each of these columns telling you about this process's life? PID — the unique identity of this process for as long as it exists. PPID — who created this process the parent process . In your case, probably the shell in your first terminal. STAT — the current state. S means "sleeping" interruptible . You'll see R running , Z zombie , and D uninterruptible I/O wait in other contexts — each one tells a different story about what is or isn't blocking the system. ETIME — how long it's been alive.In production, nobody runs sleep on purpose — but every performance incident I've ever investigated started with exactly this question: "which processes are running, who's the parent of what, and what state are they stuck in?". A process stuck in D state uninterruptible sleep for a long time, for example, is almost always a symptom of a disk or storage problem — not an application bug. Now try killing the process through its parent, not the sleep itself: kill -TERM