Linux/Unix Process Management: ps, kill, top, df, free, nice Commands
In this tutorial, you will learn-
- What is a Process?
- Running a Foreground Process
- Running a Background process
What is a Process?
An instance of a program is called a Process. In simple terms, any command that you give to your Linux machine starts a new process.
Having multiple processes for the same program is possible.
Types of Processes:
- Foreground Processes: They run on the screen and need input from the user. For example Office Programs
- Background Processes: They run in the background and usually do not need user input. For example Antivirus.
Click here if the video is not accessible
Running a Foreground Process
To start a foreground process, you can either run it from the dashboard, or you can run it from the terminal.
When using the Terminal, you will have to wait, until the foreground process runs.
Running a Background process
If you start a foreground program/process from the terminal, then you cannot work on the terminal, till the program is up and running.
Particular, data-intensive tasks take lots of processing power and may even take hours to complete. You do not want your terminal to be held up for such a long time.
To avoid such a situation, you can run the program and send it to the background so that terminal remains available to you. Let's learn how to do this -
You can use the command "fg" to continue a program which was stopped and bring it to the foreground.
The simple syntax for this utility is:
- Launch 'banshee' music player
- Stop it with the 'ctrl +z' command
- Continue it with the 'fg' utility.
Let's look at other important commands to manage processes -
This utility tells the user about all the running processes on the Linux machine.
Press 'q' on the keyboard to move out of the process display.
The terminology follows:
|Field||Description||Example 1||Example 2|
|PID||The process ID of each task||1525||961|
|User||The username of task owner||Home||Root|
|PR||Priority Can be 20(highest) or -20(lowest)||20||20|
|NI||The nice value of a task||0||0|
|VIRT||Virtual memory used (kb)||1775||75972|
|RES||Physical memory used (kb)||100||51|
|SHR||Shared memory used (kb)||28||7952|
There are five types:
'D' = uninterruptible sleep
'R' = running
'S' = sleeping
'T' = traced or stopped
'Z' = zombie
|%CPU||% of CPU time||1.7||1.0|
|%MEM||Physical memory used||10||5.1|
|TIME+||Total CPU time||5:05.34||2:23.42|
This command stands for 'Process Status'. It is similar to the "Task Manager" that pop-ups in a Windows Machine when we use Cntrl+Alt+Del. This command is similar to 'top' command but the information displayed is different.
To check all the processes running under a user, use the command -
You can also check the process status of a single process, use the syntax -
This command terminates running processes on a Linux machine.
To use these utilities you need to know the PID (process id) of the process you want to kill
To find the PID of a process simply type
pidof Process name
Let us try it with an example.
Linux can run a lot of processes at a time, which can slow down the speed of some high priority processes and result in poor performance.
To avoid this, you can tell your machine to prioritize processes as per your requirements.
This priority is called Niceness in Linux, and it has a value between -20 to 19. The lower the Niceness index, the higher would be a priority given to that task.
The default value of all the processes is 0.
To start a process with a niceness value other than the default value use the following syntax
nice -n 'Nice value' process name
If there is some process already running on the system, then you can 'Renice' its value using syntax.
renice 'nice value' -p 'PID'
To change Niceness, you can use the 'top' command to determine the PID (process id) and its Nice value. Later use the renice command to change the value.
Let us understand this by an example.
This utility reports the free disk space(Hard Disk) on all the file systems.
If you want the above information in a readable format, then use the command
This command shows the free and used memory (RAM) on the Linux system.
You can use the arguments
free -m to display output in MB
free -g to display output in GB
- Any running program or a command given to a Linux system is called a process
- A process could run in foreground or background
- The priority index of a process is called Nice in Linux. Its default value is 0, and it can vary between 20 to -19
- The lower the Niceness index, the higher would be priority given to that task
|bg||To send a process to the background|
|fg||To run a stopped process in the foreground|
|top||Details on all Active Processes|
|ps||Give the status of processes running for a user|
|ps PID||Gives the status of a particular process|
| pidof ||Gives the Process ID (PID) of a process|
|kill PID||Kills a process|
|nice||Starts a process with a given priority|
|renice||Changes priority of an already running process|
|df||Gives free hard disk space on your system|
|free||Gives free RAM on your system|