If you run make , its job is to run other programs in separate processes. The processes belonging to a single command are called a process group or job . This is so that you can operate on all of them at once. A session is a larger group of processes. Normally all the processes that stem from a single login belong to the same session.
Every process belongs to a process group.
When a process is created, it becomes a member of the same process group and session as its parent process. You can put it in another process group using the setpgid function, provided the process group belongs to the same session. The only way to put a process in a different session is to make it the initial process of a new session, or a session leader , using the setsid function. This also puts the session leader into a new process group, and you can't move it out of that process group again. Usually, new sessions are created by the system login program, and the session leader is the process running the user's login shell.