How to open an application in terminal and detach it? [duplicate]
Solution 1:
nohup
is a POSIX command to ignore the HUP (hangup) signal. The HUP (hangup) signal is by convention the way a terminal warns depending processes of logout. Output that would normally go to the terminal goes to a file called nohup.out if it has not already been redirected. nohup is a low-level utility simply configuring a command to ignore a signal. As seen below, nohup is very far from being a full-featured batch system solving all the problems of running programs asynchronously.
See manual:
man nohup
Example:
nohup cairo-dock &
Solution 2:
Yet another way: disown
In the bash shell, the disown builtin command is used to remove jobs from the job table, or to mark jobs so that a SIGHUP signal is not sent to them if the parent shell receives it (e.g. if the user logs out).
For example:
cairo-dock & disown
Solution 3:
I personally use screen for this kind of stuff.
screen -d -m -S cairo_session open cairo-dock
What's good about this is that if you want to terminate cairo-dock, you can reconnect to the screen session and terminate it.
screen -S cairo_session -X quit
Screen has other uses. It's a terminal multiplexer.