Los shells de control de trabajos manipulan sesiones o grupos de procesos todo el tiempo. Puede enviar la misma señal a todos los procesos en un grupo de procesos con una sola llamada a la kill()
función POSIX .
El estándar POSIX dice:
Si pid es mayor que 0, se enviará sig al proceso cuyo ID de proceso sea igual a pid.
Si pid es 0, se enviará sig a todos los procesos (excluyendo un conjunto no especificado de procesos del sistema) cuyo ID de grupo de procesos sea igual al ID de grupo de procesos del remitente, y para los cuales el proceso tiene permiso para enviar una señal.
Si pid es -1, se enviará sig a todos los procesos (excluyendo un conjunto no especificado de procesos del sistema) para los cuales el proceso tiene permiso para enviar esa señal.
Si pid es negativo, pero no -1, se enviará sig a todos los procesos (excluyendo un conjunto no especificado de procesos del sistema) cuyo ID de grupo de procesos sea igual al valor absoluto de pid, y para los cuales el proceso tenga permiso para enviar una señal. .
Cuando sale un shell de inicio de sesión, por ejemplo, se envía una señal SIGHUP a todos los programas de su grupo de procesos.
Cuando manipula programas en primer plano o en segundo plano, está utilizando grupos de procesos.
También hay terminales de control de las que preocuparse; las señales generadas por un terminal de control pueden enviarse a todos los programas de un grupo de procesos.