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-A
followed 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-B
followed byD
.
Reattach to the session later with:
tmux attach