How to Run Linux Commands within the Background
Running Linux instructions within the background allows for the consumer to proceed executing different duties even as the command continues to be operating. To run a command within the background there are a number of methods; certainly one of the basic strategies is by including an ampersand (&) at the tip of the command line.
Once a procedure is about to run within the background, we will entry it utilising the jobs command. This article characteristics all totally different methods of operating a command within the background.
List of totally different methods to run a background procedure is as follows:
Following is the aspect of all strategies to run a background procedure:
1: Using the Ampersand (&) Sign
In Linux Ampersand (&) is a shell operator that sends a command within the background as a separate procedure. By combining ampersand (&) to a command, it’s going to be executed as a background procedure, enabling the shell to proceed processing different instructions rapidly.
Syntax for a background procedure utilising Ampersand signal:
The ampersand image is invariably added at the tip of command with a single house between “&” and final character of command.
For illustration, create a sleep procedure for 40 sec.
As we will see, the terminal is operating the sleep command and never enabling us to participate in another job.
Now press “Ctrl + Z” to cease this procedure. Next, we are going to run the identical sleep command this time however utilising an ampersand operator with it’s going to set it up within the background.
Now this procedure is within the background. To listing the background operating procedure use:
Now kill this background procedure utilising:
For illustration, to kill the latest operating sleep procedure use:
Now the sleep procedure is killed to substantiate the listing of the background operating procedure utilising.
Here is one more illustration of utilising & ampersand signal is with gedit command.
For illustration, if we open the gedit textual content editor instantly utilising the terminal we might be certain to make use of the shell for different work or else we should cease the latest procedure first.
Using the above command will open the textual content editor which may open it in the front of the terminal.
But after utilising “&” at the tip of gedit command, the shell is free to make use of for different processes:
2: Using the ‘bg’ Command
The bg command is the second method of operating instructions within the background. This command allows for the consumer to proceed working within the terminal even as the method runs within the background, releasing up the terminal for different duties. The bg command is used for an extended operating background procedure which even runs if the consumer logs out.
Like an ampersand signal we don’t must fear about including it to the command each time simply ship bg textual content to the terminal. It will start out operating the method within the background and free the terminal for future use.
For illustration, let’s use the prior illustration and ship the command of sleep utilising:
Now the method is operating and terminal shouldn’t be attainable to be used. To use the bg command and ship this procedure in background we ought to first cease latest executing procedure by urgent “Ctrl+ Z” and executing this command:
After sending the bg command the sleep procedure began persevering with within the background. We can see an ampersand “&” at the tip, indicating that the latest procedure is in background operating.
To determine the background procedure run jobs command:
To determine the command operating in background use:
To kill the latest procedure, use its job ID with kill command. To determine jobs ID, run:
After figuring out the roles ID kill procedure utilising:
For illustration, to kill latest operating sleep procedure use:
To affirm regardless of whether the method is killed or not once again run the roles command:
We can see the sleep procedure is not any longer operating in background:
3: Using the nohup Command
The nohup command is third on our listing of operating background processes in Linux. The command stands for “no hang up” and is used to preclude the method from being terminated until the terminal session ends. When a procedure is executed utilising nohup, it continues to run whether or not the consumer logs out, and the output of the method is redirected to a file named “nohup.out”.
The nohup command to ping google endlessly in background is and output is redirected to a textual content file GooglePing.txt:
$ nohup ping google.com > GooglePing.txt &
After scripting this command we will see the terminal is free and a background procedure for endlessly pinging google is operating within the background.
To entry the log file, we will use the subsequent command:
The log file will also be accessed utilising the GUI from the residence display.
4: Using the disown Command
The disown command removes a procedure from the shell’s and runs it within the background. When a procedure is disowned, it really is not related to the terminal and continues to run even after the consumer logs out or closes the terminal.
Previously we have now used the ampersand “&” command that sends the method in background after its execution however as we shut the shell the method receives terminated. To do away with this disown command is there.
The disown command can not work independently however a minimal of 1 procedure ought to be operating within the background.
Run the under command with a & ampersand signal which may ship your command to background.
$ ping google.com > GooglePing.txt &
After the file is created we will listing it utilising the roles command.
Now our procedure is operating in background to detach it from terminal use:
Run the roles command once again to substantiate the method is indifferent from terminal:
As our procedure is at present operating however it is not any longer proven contained in the terminal:
To affirm our procedure, we will use the cat command to entry that ping file:
We have efficiently indifferent this procedure from the terminal however it continues to be operating within the background.
5: Using the tmux Utility
Tmux is a form of terminal multiplexer utility. Using tmux we will create a number of terminal classes inside a single shell. It delivers the means to run processes within the background.
To run a background procedure in Tmux, you’ll be able to create a brand new session after which detach from it utilising the important thing blend Ctrl-b accompanied by d.
To set up tmux utility on Ubuntu and Linux mint use:
To set up on Fedora run:
To set up on Arch Linux run:
Now run the tmux command to open a brand new terminal:
To create a brand new tmux session use:
$ tmux new -s [session_id]
To listing all tmux session use:
For killing a tmux session use command as:
$ tmux kill-session -t [session_id]
For illustration, to kill “0” tmux session use:
Here we listed the latest operating tmux energetic session and kill it utilising the above command:
-
- To detach from the tmux session press “Ctrl+B+D”.
- To get a listing of all instructions press “Ctrl+B+?”.
- To shift between tmux home windows press “Ctrl+B+O”.
To cut up the tmux terminal vertically, press “Ctrl+B” and sort %.
To get lower back on important terminal from tmux use:
Conclusion
Running background functions in Linux is a robust characteristic that allows for customers to hold their long-running duties operating even after logging out of the terminal or closing the window. Usually an ampersand & signal or bg command is used to ship a procedure in background. However, we can even use nohup or disown command to detach a procedure from the terminal. At final, we will use the tmux utility to create a number of terminals and run background processes devoid of disturbing the terminal.