Powłoki kontroli zadań cały czas manipulują sesjami lub grupami procesów. Możesz wysłać ten sam sygnał do wszystkich procesów w grupie procesów za pomocą pojedynczego wywołania kill()
funkcji POSIX .
Standard POSIX mówi:
Jeśli pid jest większy od 0, sig zostanie wysłany do procesu, którego identyfikator procesu jest równy pid.
Jeśli pid ma wartość 0, sig zostanie wysłany do wszystkich procesów (z wyłączeniem nieokreślonego zestawu procesów systemowych), których identyfikator grupy procesów jest równy identyfikatorowi grupy procesów nadawcy i dla których proces ma uprawnienia do wysyłania sygnału.
Jeśli pid wynosi -1, sig będzie wysłany do wszystkich procesów (z wyłączeniem nieokreślonego zestawu procesów systemowych), dla których proces ma pozwolenie na wysyłanie tego sygnału.
Jeśli pid jest ujemny, ale nie -1, sig zostanie wysłany do wszystkich procesów (z wyłączeniem nieokreślonego zestawu procesów systemowych), których identyfikator grupy procesów jest równy bezwzględnej wartości pid i dla których proces ma pozwolenie na wysyłanie sygnału .
Na przykład, gdy powłoka logowania kończy pracę, sygnał SIGHUP jest wysyłany do wszystkich programów w jej grupie procesów.
Kiedy manipulujesz programami na pierwszym planie lub w tle, używasz grup procesów.
Istnieją również terminale kontrolne, o które należy się martwić; sygnały generowane przez terminal sterujący mogą być wysyłane do wszystkich programów w grupie procesów.