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