Practical commands for working with Linux processes
Here are some of the commands you’ll use most often:
ps
– Shows processes on the system; you saw an example of this command earlier in the chapter. Flags modify which process attributes are displayed as columns. This command is usually used with filters to control how much output you get, for example, (ps aux | head –n 10
) to cut your output down to just the top 10 lines. A few more useful tricks:ps –eLf
shows thread information for processesps -ejH
is useful for seeing the relationships between parent and child processes visually (children are indented under their parents)
Figure 2.2: Examples of outputs of the ps command with flags
pgrep
– Find process IDs by name. Can use regular expressions.
Figure 2.3: Examples of outputs of the pgrep command with flags
top
– An interactive program that polls all processes (once a second, by default) and outputs a sorted list of resource usage (you can configure what it sorts by). Also displays total system resource usage. Press Q or use Ctrl + C to quit. You’ll see an example of this command’s output later in this chapter.iotop
– Liketop
, but for disk IO. Extremely useful for finding IO-hungry processes. Not installed on all systems by default, but available via most package managers.
Figure 2.4: Example of output of the iotop command
nethogs
– Liketop
, but for network IO. Groups network usage by process, which is incredibly convenient. Available via most package managers.
kill
– Allows users to send signals to processes, usually to stop them or make them re-read their configuration files. We’ll explain signals andkill
command usage later in this chapter.