Running Bash script in background
Running Bash script in the background is useful for executing long-running tasks without keeping the terminal occupied. This guide will show you various methods to achieve this.
Basic Method
To run a script in the background, use the & operator at the end of the command:
./your-script.sh &
With Output Redirection
To prevent the script from outputting to the terminal, redirect its output to a file or to /dev/null:
./your-script.sh > output.log 2>&1 &
Using nohup
If you want the script to keep running even after you log out, use nohup:
nohup ./your-script.sh > output.log 2>&1 &
Checking Background Processes
To check the background processes, use the jobs command:
jobs
Using disown
If you want to disassociate the script from the terminal completely, use disown:
./your-script.sh &
disown
Using screen or tmux
For more advanced background running and session management, consider using screen or tmux.
With screen:
- Start a new screen session:
screen - Run your script:
./your-script.sh - Detach from the screen session by pressing
Ctrl-Afollowed byD.
Reattach to the session later with:
screen -r
With tmux:
- Start a new tmux session:
tmux - Run your script:
./your-script.sh - Detach from the tmux session by pressing
Ctrl-Bfollowed byD.
Reattach to the session later with:
tmux attach
