Job is simply a process. In Linux, each job is associated with PID.
There are three types of jobs:
When you run
vi <file>, the
vi program "occupies" the terminal window, and the process runs in the foreground.
When you exit the program, the application is no longer running, and the process dies.
Processes that are running without occupying the window. This can be achieved, for example, by appending
& at the end of the command. For example, when you run:
tar -czf file.tar.gz .
tar process will block the terminal until it finishes. However, when you run:
tar -czf file.tar.gz . &
then it'll run in the background. And if you type
jobs while it's still running:
jobs + Running tar -czf file.tar.gz . &
CTRL + z sends the
SIGTSTP signal that stops the job that's runnin in the foreground.
jobs- lists all jobs
bg [PID...]- takes the specified job(s) to the background, resuming them if they are stopped.
fg [PID]- brings the specified job to the foreground, resuming it if it is stopped
CTRL + z - Sends the
SIGTSTPsignal that stops the running job
The following should demonstrate the commands above:
> tar -czf file.tar.gz . # ...working... # CTRL + z Job 1, 'tar -czf file.tar.gz .' has stopped > jobs + Running tar -czf file.tar.gz . & > fg %1 (or just "fg" since there's only one job) # job restarts
That's all :)