Chapter 5: Working with Processes, Daemons, and Signals
Linux is a multitasking operating system. Multiple programs or tasks can run in parallel, each with its own identity, scheduling, memory space, permissions, and system resources. Processes encapsulate the execution context of any such program. Understanding how processes work and communicate with each other is an important skill for any seasoned Linux system administrator and developer to have.
This chapter explores the basic concepts behind Linux processes. We'll look at different types of processes, such as foreground and background processes, with special emphasis being placed on daemons as a particular type of background process. We'll closely study the anatomy of a process and various inter-process communication mechanisms in Linux – signals in particular. Along the way, we'll learn about some of the essential command-line utilities for managing processes and daemons and working with signals.
In...