A job is a process group that current shell manages directly or thru a subshell, as I understand.
Jobs are only known to current shell; kernel has no idea about them.

Ways to start a job:
$ thisFile.Exe & # the job is the exe process
$ thisFile.sh & # assuming thisFile.sh runs thisFile.Exe. the job is the subshell, e.g. bash
$ (thisFile.Exe; thisFile2.Exe) & # the job is a subshell created to run the 2 exe files.
#note: if only one element in (), the whole parentheses is ignored, which means no subshell involved.

How to check:
from the same terminal:
$ jobs #assuming current is tty5
from another terminal:
by looking at the processes:
$ ps -e |grep tty5
no commands like $jobs in this shell since it has no knowledge of those jobs; it only knows about processes, thru kernel


This free site is ad-supported. Learn more