How to set process group of a shell script

Jacob picture Jacob · Jul 1, 2011 · Viewed 22.1k times · Source

How to set process group of a shell script ? Also I want all the child process to be in the same process group

I expect something similar to setpgid() in C.

Answer

As PSkocik points out, it is possible to run a process in its own process group, in most shells, by activating job control (“monitor mode”).

(set -m; exec process_in_its_own_group)

Linux has a setsid utility, which runs the command passed as argument in its own session (using the eponymous system call). This is stronger than running it in its own process group à la setpgrp, but that may be ok for your purpose.

If you want to place the process in an existing group rather than in its own group (i.e. if you want the full power of setpgid), there's no common shell utility. You have to use C/Perl/…