Is there a way to reattach to a specific terminal a process that was started from terminal with &? For instance, I started Kate by:
and now I want to reattach the process to a given terminal.
There are two issues here:
1) Death by HUP and avoiding that:
If you start a program in a shell and then end that shell then all child processes will be killed. This includes programs running in to background. (Those which you start with an & at the end of the command, like the
Both will die once you close the shell.*1
You can work around this by
You can use nohup (e.g.
You can also start a program which emulates a terminal on its own and which is specially build so you can reconnect to it.
Example of screen usage:
Walk to another computer, or come back hours later. (or both :))
- log in or ssh to host.
Useful commands for screen:
screen -r Reconnect to the screen (e.g. from a different location)
*1: Edit: When I answered this I assumed that all shells would always sends a sigHUP to all of its children. However this is an option and depending on the shells it may be configurable. In some cases it even is no longer the default.
Example1: In bash you can configure this option via the buildin command shopt. (
Example2: With zsh you want