Process
Core Idea
A process is a running instance of a program with its own process id, owner, memory, open files, environment, current directory, and execution state.
Commands To Try
ps -u "$USER" -o pid,ppid,user,stat,comm,args
htop
pid is the process id. ppid is the parent process id. stat summarizes the process state. comm is the command name. args shows the command line.
Process Relationships
Processes form a tree. Your shell starts commands as child processes. A systemd user service is started and supervised by your per-user systemd instance. A web server process can create sockets, read files, and write logs.
State To Notice
- Running or runnable: wants CPU time.
- Sleeping: waiting for input, time, disk, or network.
- Stopped: paused by job control or a signal.
- Zombie: exited, but parent has not collected its result yet.
Signals
Signals are notifications sent to processes. Ctrl-C usually sends interrupt to the foreground process. kill PID sends a signal to a process id. A signal is not magic; the kernel delivers it and the process may handle or terminate from it depending on the signal.
Common Confusions
- A program file is not a process. A process is the program while it is running.
- Closing a terminal may end child processes unless tmux, systemd, or another supervisor keeps them alive.
- A process can be alive but not listening on the port you expected.
- Killing by name with
killallis broader than killing one known process id.
Proof Check
Run ps -u "$USER" -o pid,ppid,comm,args. Pick one process and identify its pid, parent pid, command name, and why it is running.
Docs Pointers
- Run
man ps,man kill, andman signal. - Read Process Basics, CPU, Memory, Syscall, and User Space.

Linux Foundations