Разница между группой процессов и работой?

В чем разница между группой процессов и работой? Если я напечатаю pr * | lpr pr * | lpr то это как группа процессов, так и работа? В чем же разница между идентификатором группы процессов и идентификатором задания?

Изменить: я знаю, что похоже на то, какова разница между работой и процессом? , но он немного отличается. Кроме того, я не понял эту концепцию из этой темы.

Группа процессов представляет собой концепцию ядра unix. Это не происходит очень часто. Вы можете отправить сигнал всем процессам в группе, вызвав системный вызов kill или утилиту с отрицательным аргументом.

Когда процесс создается (с fork ), он остается в той же группе процессов, что и ее родитель. Процесс может перемещаться в другую группу, вызывая setpgid или setpgrp . Обычно это выполняется оболочкой при запуске внешнего процесса, прежде чем он выполнит execve для загрузки внешней программы.

Основное применение для групп процессов заключается в том, что при нажатии Ctrl+C , Ctrl+Z или Ctrl+\ чтобы убить или приостановить программы в терминале , терминал отправляет сигнал всей группе процессов, группе процессов переднего плана . Детали довольно сложны и в основном представляют интерес для разработчиков оболочки или ядра; главу « Общий интерфейс терминала» стандарта POSIX – хорошая презентация (вам нужен какой-то фон программирования Unix).

Рабочие места являются внутренней концепцией оболочки. В простых случаях каждое задание в оболочке соответствует группе процессов в ядре.