Я, здається, неправильно розумію правило Баша для створення підшаровки. Думав, що круглі дужки завжди створюють підзаголовок, який працює як власний процес.
Однак, схоже, це не так. У фрагменті коду A (нижче) друга sleep
команда не виконується в окремій оболонці (як визначено pstree
в іншому терміналі). Тим НЕ менше, в фрагменті коду В, друга sleep
команда робить працювати в окремій оболонці. Єдина відмінність між фрагментами полягає в тому, що другий фрагмент має дві команди в дужках.
Може хтось, будь ласка, пояснить це правило, коли створюються підрозділи?
КОД SNIPPET A:
sleep 5
(
sleep 5
)
КОД SNIPPET B:
sleep 5
(
x=1
sleep 5
)
fork
і створюється дочірній процес (виконувати зовнішні команди) шляхом викликуfork + exec
. Але ваш перший пункт говорить про те, щоfork + exec
закликається і для передплати. Що я тут помиляюся?