Разница (и) между фоновым процессом и демоном в linux - PullRequest
0 голосов
/ 20 апреля 2020

Фоновые процессы не принадлежат ни пользователю, ни терминалу, ни демонам. В чем главное различие между ними? Если бы я написал серверную программу, должен ли я запускать ее как фоновый процесс или демон?

1 Ответ

1 голос
/ 03 мая 2020

Когда говорят «фоновый процесс», обычно это происходит в контексте оболочки (например, bash), которая реализует управление заданиями .

Когда процесс (или группа процессов ) помещается в фоновый режим, она все еще является частью сеанса, созданного оболочкой, и все равно будет иметь связь с управляющим терминалом оболочки. Стандартный ввод / вывод фонового процесса все еще будет связан с терминалом (если явно не изменено). Кроме того, в зависимости от того, как работает оболочка, она может отправить сигнал SIGHUP всем фоновым процессам (см. этот ответ, чтобы точно знать, когда). Пока оболочка не завершится, она останется родителем фонового процесса.

Демон, с другой стороны, не имеет управляющего терминала и обычно явно делается дочерним процессом процесса init. Стандартный ввод / вывод осмеления обычно перенаправляется на /dev/null

...