How to run a shell script in the background and get no output

run shell script in background
run shell script in background nohup
run script in background and redirect output
linux run command in background and close terminal
execute unix command in shell script
linux run in background and detach
how to run a job in background in unix
run shell script without output

I wrote two shell scripts a.sh and b.sh. In a.sh and b.sh I have a infinite for loop and they print some output to the terminal. I want to write another script which calls both a.sh and b.sh but I want the user to regain control of the terminal immediately, instead of having the script run infinitely and I want to hide the output in terminal.

Use nohup if your background job takes a long time to finish or you just use SecureCRT or something like it login the server.

Redirect the stdout and stderr to /dev/null to ignore the output.

nohup /path/to/your/script.sh > /dev/null 2>&1 &

command line - How to run a shell script in background?, you can just switch screen and run your script on that 2nd screen. 2nd screen will be in the background as extra "terminal window". and it will not stop processing even when you close -D -RR Do whatever is needed to get a screen session. -O Choose optimal output rather than exact vt100 emulation. & sends the process to the background but it is still tied to your shell process – if the shell dies it will die. nohup does not background the task, but disconnects its standard in and out from the shell so that it is no longer dependent on it. To safely close your shell you need to both put the process in the background and disconnect it.

Redirect the output to a file like this:

./a.sh > somefile 2>&1 &

This will redirect both stdout and stderr to the same file. If you want to redirect stdout and stderr to two different files use this:

./a.sh > stdoutfile 2> stderrfile &

You can use /dev/null as one or both of the files if you don't care about the stdout and/or stderr.

See bash manpage for details about redirections.

Execute command without terminal output, If you don't need the output at all then redirect it to /dev/null yourcommand > /dev/​null 2>&1. otherwise you can redirect into a file: yourcommand  How to execute scripts in the background. Read the tutorial, How to run a process in the background. How to make executable scripts. The immediate benefit of turning one of our plain old shell scripts into an executable shell script is this difference in running the script: Instead of this syntax: user@host:~$ bash my_script.sh We can simply do

Sorry this is a bit late but found the ideal solution for somple commands where you don't want any standard or error output (credit where it's due: http://felixmilea.com/2014/12/running-bash-commands-background-properly/)

This redirects output to null and keeps screen clear:

command &>/dev/null &

5 Ways to Execute UNIX / Linux Commands (and Shell Scripts) in , You can execute a command (or shell script) as a background job by How To Capture Unix Top Command Output to a File in Readable  Need your help to format the output of my shell script. I am using spool command to take out put in csv file. below is my code. (for example) col USERNAME for a15 col EMAIL for a30 col FULL_NAME for a20 col LAST_LOGIN for a40 col DATE_CREATED for a40 SPOOL 120.csv

If they are in the same directory as your script that contains:

./a.sh > /dev/null 2>&1 &
./b.sh > /dev/null 2>&1 &

The & at the end is what makes your script run in the background.

The > /dev/null 2>&1 part is not necessary - it redirects the stdout and stderr streams so you don't have to see them on the terminal, which you may want to do for noisy scripts with lots of output.

How to run a command in background with no output unless there's , With bash , you can get the exit code of the last command from the script to handle the output-hiding and running that script in the background  You can run the shell script inside the other. But keep in mind that In the second script do not kill the first one. If you want to kill the first one, then back up the file name somewhere and kill it, then use that path in the second script.

Run in a subshell to remove notifications and close STDOUT and STDERR:

(&>/dev/null script.sh &)

Run a Bash Script in Background with No Output, Redirect the stdout and stderr to /dev/null to ignore the output and do not create the /root/nohup.out log file: nohup /path/to/script.sh > /dev/null. I wrote two shell scripts a.sh and b.sh.In a.sh and b.sh I have a infinite for loop and they print some output to the terminal. I want to write another script which calls both a.sh and b.sh but I want the user to regain control of the terminal immediately, instead of having the script run infinitely and I want to hide the output in terminal.

How to Start Linux Command in Background and Detach Process in , your controlling terminal is filled with so much output data and error/diagnostic How to Start a Linux Process or Command in Background a shell job from the shell's active list jobs, therefore you will not use fg , bg commands In Linux, /​dev/null is a special device file which writes-off (gets rid of) all data  Hi, I am running a script that copy files from one server to 3 other servers. The output I get is warning from other servers when make ssh even when I run the script with & on the end or if I move it in background with ^Z and bg.

Unix Nohup: Run a Command or Shell-Script Even after You Logout, When you execute a Unix job in the background ( using &, bg command), and logout Nohup stands for no hang up, which can be executed as shown below. Nohup is very helpful when you have to execute a shell-script or command that while(true) do echo "standard output" echo "standard error" 1>&2 sleep 1; done​  Execute a command in the background using nohup After you execute a command (or shell script) in the background using &, if you logout from the session, the command will get killed. To avoid that, you should use nohup as shown below. $ nohup./my-shell-script.sh &

How do You Run a Command in the Background with No Output , Typically(2), an exit code of 0 indicates success, and any other exit code indicates an error. With bash, you can get the exit code of the last 

Comments
  • Just to add, sometimes there are arguments for the scripts then above command will return Ambiguous output redirect.
  • A better way that I found is to use nohup /path/to/your/script.sh parameter1 > & 1 & If anyone knows a better way.
  • You don't need /dev/null 2>&1 if you're using nohup as it already appends all STDOUT and STDERR streams to the nohup.out file automagically. Use just: nohup /path/to/your/command &
  • @sabertooth1990 Your command line is faulty: -bash: syntax error near unexpected token '&'
  • How would you then kill the created process?
  • Note: the command will be terminated when the terminal is closed.
  • For anyone looking at this in future who wants a solution to keep commands running after a session ends, I would suggest screen or tmux. They essential run a 'session within a session' which carries on after you close the initial session. You can then reconnect to the ongoing session if you log back in. Great for running rsync backups for example where the sync needs to run for a long time and you don't want to leave your session running.