I run a lot of programs in Ubuntu from the terminal, but I would like to be able to continue using the terminal after I have a program open. How can I put the programs in the background so that I don't have to open another window?
There are different ways to run a terminal program and continue using the terminal:
- You can open another terminal tab (right-click, then select "Open New Tab").
- You can append
&to the command you run. Be aware that you will not see text output to the terminal, such as error messages.
- You can type Ctrl-Z and then run
bg. This has the same effect as running
- You can run
nohup command &and then press enter. (Thanks to ccpizza, see comments below.)
However, pressing Alt-F2 and then running your command from the GUI is usually considered best practice - there is no terminal at all!
Note that when using
nohup), closing the terminal will still terminate the application unless you run
EDIT: It looks like using
nohup will sometimes leave little droppings in your home folder. What would normally have been logged to the terminal is apparently saved to a file in ~/.
A simple way to run a program in the background is
program-name & disown, which will drop you to a terminal which can be closed without killing the process.
You can run the command with a & after.
See Here for more info.
screen command, you can open multiple terminal sessions using a single window
apt-get install screen (On Debian based Systems)
yum install screen (On RedHat based Systems)
screen (start new screen)
Ctrl+A d to leave screen
... and so on
You can run it in a virtual terminal like
screen but I heard it's not maintained anymore)
# This ataches your terminal to a virtual terminal
# This detaches your virtual terminal (previous command can be running)
run_other_commands # on your terminal
# re-attach the virtual terminal to see the status of run_your_command
tmux can do a lot more, like :
- move your virtual terminal to another terminal
- share the virtual terminal in several terminals (other users can see what your doing ;-) )
- split the "screen" to have several terminals.