

- Program — executable code stored on disk.
- Process — the running instance of that code, loaded into RAM.
- Task — often used interchangeably with “process” in kernel contexts.

- User processes: started by interactive users via terminal or GUI; typically have a controlling terminal.
- Daemons (services): run in the background without a terminal, waiting for events (network requests, timers, etc.).
cron and atd run scheduled jobs.

STAT (or S) column shown by ps, top, and similar tools indicates a process state. Use this table to translate the flag you see into real behavior:
Inspect IDs and states:
When a child process exits, its parent must collect the exit status (e.g. via
wait()). If it does not, the child remains a zombie (Z) and holds a PID slot until reaped.
Common kill usage:

Prefer
SIGTERM (the default kill) so processes can exit cleanly. Use SIGKILL (kill -9) only when a process refuses to terminate.ps— snapshot of processes; scriptable and flexible.pstree— shows parent/child hierarchies.top— interactive, real-time view of CPU/memory and process metrics.htop— enhancedtopwith keyboard-driven UI (if installed).

kill <PID>— send a signal to one PID.killall <name>— send a signal to all processes with that name.pkill <pattern>— send a signal to processes matching a pattern or other attributes.topandhtop— provide interactive options to kill or change priority (renice) for processes.
Ctrl-Z— suspend current foreground job (sendsSIGSTOP).bg— resume a suspended job in background.fg— bring a background job to the foreground.jobs— list shell jobs with job IDs.disown— remove a job from the shell’s job table so it won’t receiveSIGHUP.nohup <cmd> &— run a command immune to hangups and in the background.
Summary
Understanding the Linux process lifecycle, states, signals, and the tools to inspect and control processes is essential for diagnosing performance issues and keeping systems responsive. Use
ps, pstree, and top (or htop) to discover what is running; use kill, pkill, and killall with appropriate signals to control processes; and use shell job control (jobs, bg, fg, disown, nohup) to manage interactive and background workloads.
Next topics to explore (recommended)
- Process priority and scheduling:
nice,renice, and scheduler basics. - System tuning tools:
tuned,sysctl, and cgroup resource controls. - Service management:
systemctlfor daemon lifecycle and resource limits.
- Linux ps man page
- kill(1) — Send signals to processes
- top(1) — Display Linux tasks
- pstree(1) — Display a tree of processes
- Systemd service management (systemctl)