Skip to content

Running Bash script in background

  • by

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:

  1. Start a new screen session:
    screen
  2. Run your script:
    ./your-script.sh
  3. Detach from the screen session by pressing Ctrl-A followed by D.

Reattach to the session later with:

screen -r

With tmux:

  1. Start a new tmux session:
    tmux
  2. Run your script:
    ./your-script.sh
  3. Detach from the tmux session by pressing Ctrl-B followed by D.

Reattach to the session later with:

tmux attach

Leave a Reply

Your email address will not be published. Required fields are marked *

I accept that my given data and my IP address is sent to a server in the USA only for the purpose of spam prevention through the Akismet program.More information on Akismet and GDPR.