The ps -ef command is a powerful tool used in Linux operating systems to display the status information of running processes. This command provides system administrators and users with an overview of the processes running on the system, the resources they consume, and the users who initiated them. The development of ps -ef is credited to the BSD Unix operating system and has evolved over the years to support different functionalities.
The Basics of ps -ef Command
Syntax
The ps -ef Linux command is used to display the status of active processes. The basic syntax is:
ps -ef
This command will display information about all active processes running in the system, including the process ID (PID), user, CPU utilization, memory usage, and the command that launched the process.
There are several additional flags or options that can be used with the ps -ef command:
Flag/Option | Description |
---|---|
-a |
Displays all processes on a terminal, including those not associated with the user’s login session. |
-u |
Displays detailed information about the process owners, including login name, CPU usage, and memory usage. |
-x |
Displays information about processes that are not attached to a terminal. |
Understanding Process Status Codes
When using the ps -ef command, the STAT column displays status codes that represent the current state of a process. Understanding these codes can help identify processes that are causing system issues. Some of the most common codes and their meanings include:
Code | Description |
---|---|
R |
The process is running or scheduled to run. |
S |
The process is sleeping, waiting for some condition to occur. |
T |
The process is stopped, either by a job control signal or because it is being traced. |
Z |
The process is a zombie process, terminated but not yet removed from the process table. |
Other codes that may appear in the STAT column include:
D
: The process is in uninterruptible sleep.I
: The process is idle.X
: The process is being traced or is exiting.
By understanding these process status codes, system administrators can more easily identify and manage processes in their environment.
Common Usage of ps -ef Command
Listing All Running Processes
The ps -ef command can be used to list all running processes on a Linux system. The output includes the process ID (PID), the user running the process, the CPU usage, start time, and the command associated with the process. To list all processes, simply enter the ps -ef command in your terminal.
Filtering Processes
The ps -ef command output can be filtered to get specific information about a particular process or group of processes. The most common filter used is the grep command. For example, to filter processes running as a specific user, use the following command: ps -ef | grep username. This command will display all processes running as the user “username”.
Killing Processes with ps -ef Command
The ps -ef command can also be used to kill a running process. The kill command is used for this purpose. First, find out the PID of the process you want to kill using the ps -ef command. Then, use the kill command with the PID to terminate the process. For example, to kill a process with PID 12345, use the command: kill 12345.
Advanced Usage of ps -ef Command
Listing Threads
When using the ps -ef command, you can display information about threads in addition to processes. By default, threads are not displayed but can be shown using the -L flag. This will display a separate line for each thread associated with the process. However, this can make the output difficult to read, so it is recommended to use the -f option to display the output in a full format with a tree hierarchy to better show the relationship between processes and threads.
Listing Child Processes
With the ps -ef command, you can list the child processes of a parent process. To do this, use the -C flag followed by the parent process ID. This will display all child processes started by the parent. Alternatively, you can use the -H flag to display the tree hierarchy of processes, showing parent-child relationships.
Controlling the Output with ps -ef Command
There are several advanced flags and options available with the ps -ef command to control the output. The -o flag allows you to specify which columns should be displayed, and you can use the argument THREAD to display thread-related information. You can also change the format of the output using the -o flag followed by formatting options such as U, which displays the user ID of the process. Additionally, you can sort the output by column using the –sort flag followed by the column name, and use the –no-headers flag to remove the header row from the output.
References
Ps command in Linux with Examples – GeeksforGeeks
Ps Command: Monitor Linux Processes Using Ps Command – TecMint