Linux Process Management
Linux process management is how you inspect, prioritize, signal, and supervise running programs. The kernel tracks each task and schedules CPU time, while tools such as ps and service managers turn that state into operational controls.
itLinux | OpenSkills.info
Intro
Linux Process Management
A Linux process is a running program represented by kernel-managed state. That state includes an identifier, credentials, memory mappings, open files, signal settings, scheduling attributes, and one or more threads. The kernel scheduler selects runnable threads for CPUs. User-space tools read process state and request changes through system calls.
Process management is therefore a control loop: identify the correct task, inspect its state and relationships, choose the least disruptive action, then verify the result. A process identifier, or PID, is useful for locating a task, but PIDs can be reused after exit. Names alone are also ambiguous because several processes may run the same executable.
The process lifecycle
A program commonly creates work with fork() or a related interface. fork() creates a child process with a separate address space that initially uses copy-on-write pages. The child often calls execve() next. That call replaces the current process image while retaining the same PID.
The parent and child form a process tree. The child receives a parent process identifier, or PPID. A service manager or shell may sit above several related descendants. Process groups collect processes for signal delivery and terminal job control. Sessions collect related process groups and establish a controlling-terminal boundary.
When a process exits, the kernel retains its termination status until its parent calls a wait interface. During that interval the process is a zombie: it no longer executes, but it still occupies a process-table slot. An orphan is different. Its parent exited first, so another process, commonly PID 1 or a configured child subreaper, adopts it.
Continue the course
This section is part of the paid course.
See pricing to subscribe, or log in if you already have access.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://www.man7.org/linux/man-pages/man2/fork.2.html
Supports
- Child-process creation, inheritance, copy-on-write behavior, and limits
- Process lifecycle explanation and quiz grounding
- https://man7.org/linux/man-pages/man2/execve.2.html
Supports
- Program-image replacement and retained process identity
- Signal and process attributes across exec
- https://www.man7.org/linux/man-pages/man2/wait.2.html
Supports
- Child-state collection, exit status, waitable states, and zombies
- https://man7.org/linux/man-pages/man7/signal.7.html
Supports
- Signal delivery, masks, dispositions, targets, and default actions
- SIGKILL and SIGSTOP behavior
- https://www.man7.org/linux/man-pages/man1/ps.1.html
Supports
- Snapshot behavior, selection and output fields, threads, and state codes
- https://docs.kernel.org/filesystems/proc.html
Supports
- Per-process procfs structure, status, statistics, file descriptors, and access behavior
- https://man7.org/linux/man-pages/man5/proc_pid_status.5.html
Supports
- Human-readable process identity, memory, capability, and signal fields
- https://man7.org/linux/man-pages/man5/proc_pid_stat.5.html
Supports
- Machine-oriented process state and scheduling fields
- https://man7.org/linux/man-pages/man7/sched.7.html
Supports
- Normal, real-time, and deadline policies, priorities, nice values, and affinity
- https://man7.org/linux/man-pages/man2/getpriority.2.html
Supports
- Nice-value range, privilege rules, and per-thread Linux behavior
- https://www.man7.org/linux/man-pages/man7/cgroups.7.html
Supports
- Hierarchical process grouping, controllers, inheritance, and history
- Linux 2.6.24 initial cgroups and Linux 3.2 CPU bandwidth milestones
- https://docs.kernel.org/admin-guide/cgroup-v2.html
Supports
- Unified cgroup hierarchy and resource-distribution model
- https://www.man7.org/linux/man-pages/man7/pid_namespaces.7.html
Supports
- PID isolation, nested visibility, namespace PID 1, adoption, and procfs views
- https://www.man7.org/linux/man-pages/man2/clone.2.html
Supports
- Task creation options and Linux 2.6.24 CLONE_NEWPID milestone
- https://man7.org/linux/man-pages/man2/pidfd_open.2.html
Supports
- Process file descriptors, polling, and Linux 5.3 history
- https://man7.org/tlpi/api_changes/
Supports
- September 2019 pidfd and clone3 process API milestone
- https://docs.kernel.org/scheduler/sched-design-CFS.html
Supports
- CFS virtual-runtime model and Linux 2.6.23 merge
- https://docs.kernel.org/scheduler/sched-eevdf.html
Supports
- EEVDF eligible-task, lag, and virtual-deadline model
- Linux 6.6 scheduler transition
- https://www.kernel.org/releases.html
Supports
- Linux 6.6 release date
- https://www.kernel.org/pub/linux/kernel/v2.6/
Supports
- Linux 2.6.0 release date
- https://www.kernel.org/doc/ols/2003/ols2003-pages-285-296.pdf
Supports
- Linux 2.5 O(1) scheduler model carried into the 2.6 generation
- https://kernelnewbies.org/Linux_4.5
Supports
- March 2016 Linux 4.5 release and stable cgroup unified hierarchy
- https://wiki.freedesktop.org/www/Software/systemd/
Supports
- PID 1 service management, cgroup process tracking, activation, and dependency behavior
- https://www.freedesktop.org/software/systemd/man/latest/systemctl.html
Supports
- Unit status, lifecycle, signal, and property operations
- https://github.com/sindresorhus/awesome
Supports
- Discovery of the Awesome Sysadmin list
- https://github.com/awesome-foss/awesome-sysadmin
Supports
- Discovery of Glances, Monit, Cockpit, and Healthchecks
- https://glances.readthedocs.io/en/latest/aoa/ps.html
Supports
- Process states, task and thread counts, sorting, filtering, I/O, and signal actions
- Awesome Links and Landscape placement for Glances
- https://mmonit.com/monit/documentation/monit.html
Supports
- Process checks, resource conditions, alerts, and lifecycle actions
- Awesome Links and Landscape placement for Monit
- https://docs.oracle.com/en/operating-systems/oracle-linux/cockpit/cockpit-services.html
Supports
- Cockpit service inspection and systemd-backed lifecycle actions
- Awesome Links and Landscape placement for Cockpit
- https://healthchecks.io/docs/
Supports
- Heartbeat monitoring for cron jobs, background workers, and scheduled tasks
- Awesome Links rationale for Healthchecks.io
- https://supervisord.org/
Supports
- Project-level process supervision, states, signals, logging, and control
- Landscape placement for Supervisor
- https://pm2.io/docs/runtime/guide/process-management/
Supports
- Named process lists and start, stop, restart, delete, save, and resurrect operations
- Landscape placement for PM2
- https://htop.dev/
Supports
- Interactive process viewer role and Landscape placement for htop
- https://github.com/aristocratos/btop
Supports
- Resource panels, selected-process detail, and process signal actions
- Landscape placement for btop
