Bash Job Control
Forking
If a command ends in &, it is pushed to the background as a child process. The shell does not await that child process returning, and can exit immediately.
These child processes are called jobs, and they are managed with three builtins:
bg, which moves a job to the background
fg, which resumes a job in the foreground
jobs, which lists running jobs
Note that the kill, disown, and wait builtins work on both processes and jobs.
Coprocesses
With the coproc buiiltin, a child process can be instantiated in the background. Unlike a forked process, it is possible to pass data into and receive data from a coprocess.
Pushing to Background
With the keyboard sequence of Control+Z, a running process (such as emacs or vi can be pushed to the background. Functionally this is the same as forking. So similarly, to resume work in the editor, use fg.
