Вопросы с тегом «fork»

95
Зачем нам форк для создания новых процессов?

В Unix всякий раз, когда мы хотим создать новый процесс, мы разветвляем текущий процесс, создавая новый дочерний процесс, который в точности совпадает с родительским процессом; затем мы выполняем системный вызов exec, чтобы заменить все данные из родительского процесса данными для нового процесса....

54
Почему я не могу разбить мою систему с помощью вилочной бомбы?

Недавно я копал информацию о процессах в GNU / Linux и встретил печально известную вилочную бомбу: :(){ : | :& }; : Теоретически предполагается, что она будет дублироваться бесконечно, пока в системе не закончатся ресурсы ... Тем не менее, я пробовал тестировать как на CLI Debian, так и на...

50
Почему программа с fork () иногда выводит свой вывод несколько раз?

В программе 1 Hello worldпечатается только один раз, но когда я удаляю \nи запускаю его (программа 2), вывод печатается 8 раз. Может кто-нибудь, пожалуйста, объясните мне значение \nздесь и как это влияет на fork()? Программа 1 #include <sys/types.h> #include <unistd.h> #include...

46
Почему по умолчанию используется механизм создания процесса fork?

Системный вызов UNIX для создания процесса, fork (), создает дочерний процесс путем копирования родительского процесса. Насколько я понимаю, за этим почти всегда следует вызов exec () для замены пространства памяти дочернего процесса (включая текстовый сегмент). Копирование пространства памяти...

41
Есть ли вариант UNIX, в котором дочерний процесс умирает вместе со своим родителем?

Я уже довольно давно изучаю поведение ядра Linux, и мне всегда было ясно, что: Когда процесс умирает, все его дочерние элементы возвращаются initпроцессу (PID 1) до тех пор, пока они в конечном итоге не умрут. Однако недавно кто-то с большим опытом работы с ядром сказал мне, что: Когда процесс...

39
Создание потоков завершается с ошибкой «Ресурс временно недоступен» с ядром 4.3

Я использую докер-сервер в Arch Linux (ядро 4.3.3-2) с несколькими контейнерами. Со времени моей последней перезагрузки сервер Docker и случайные программы в контейнерах аварийно завершают работу с сообщением о невозможности создать поток или (реже) выполнить ветвление. Конкретное сообщение об...

37
Fork vs Clone на 2.6 ядре Linux

У меня есть некоторая путаница относительно вилки и клона. Я видел это: форк для процессов и клон для потоков форк просто вызывает клон, клон используется для всех процессов и потоков Являются ли эти из них точными? В чем разница между этими 2 системными вызовами с ядром Linux...

31
fork: retry: ресурс временно недоступен

Пока я подключаюсь к своему серверу, я получаю, -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: retry: Resource temporarily unavailable -bash: fork: Resource temporarily...

26
Когда вам нужен nohup, если вы уже разветвляетесь, используя '&'?

Сначала этот вопрос связан, но определенно не совпадает с этим очень хорошим вопросом: Разница между nohup, disown и & Я хочу кое-что понять: когда я делаю '&', я разветвляюсь, верно? Всегда ли полезно делать "nohup ... &" или просто и достаточно? Может ли кто-нибудь показать случай,...

25
Поддерживает ли bash разветвление аналогично fork () в C?

У меня есть сценарий, который я хотел бы разветвить в один момент, чтобы были запущены две копии одного и того же сценария. Например, я хотел бы, чтобы существовал следующий скрипт bash: echo $$ do_fork() echo $$ Если этот bash-скрипт действительно существует, ожидаемый результат будет:...

23
Как копирование при записи в fork () обрабатывает несколько форков?

Согласно Википедии (что может быть не так) Когда выполняется системный вызов fork (), создается копия всех страниц, соответствующих родительскому процессу, загружаемая ОС в отдельную область памяти для дочернего процесса. Но это не нужно в определенных случаях. Рассмотрим случай, когда дочерний...

22
Как работает вилочная бомба?

ПРЕДУПРЕЖДЕНИЕ НЕ ПЫТАЙТЕСЬ ЗАПУСТИТЬ ЭТО НА ПРОИЗВОДСТВЕННОМ МАШИНЕ Читая страницу Википедии по теме, я обычно следую за тем, что происходит со следующим кодом: :(){ :|:& };: выдержка из описания Следующая вилочная бомба была представлена ​​как искусство в 2002 году;56 его точное...

22
После того, как fork (), где ребенок начинает его выполнение?

Я пытаюсь изучить программирование в UNIX и натолкнулся на вопрос относительно fork (). Я понимаю, что fork () создает идентичный процесс текущего запущенного процесса, но где он начинается? Например, если у меня есть код int main (int argc, char **argv) { int retval; printf ("This is most...

20
Процесс потомков

Я пытаюсь построить контейнер процесса. Контейнер будет запускать другие программы. Например, bash-скрипт, запускающий фоновые задачи с использованием '&'. Важная особенность, которая мне нужна, заключается в следующем: когда я убиваю контейнер, все, что было создано под ним, должно быть...

18
Как передать пароль дочернему процессу?

Передача пароля в командной строке (дочернему процессу, запущенному из моей программы), как известно, небезопасна (потому что его могут увидеть даже другие пользователи с помощью команды ps). Можно ли передавать его как переменную среды? Что еще я могу использовать, чтобы передать его? (За...

17
Как работают fork и exec?

У меня нет большого опыта, я просто пытаюсь участвовать в процессах, как они интерпретируют оборудование на уровне пользователя. Поэтому, когда команда запускается из оболочки, она fork()наследует дочерний процесс, exec()загружает дочерний процесс в память и выполняет. Если дочерний процесс...

16
Почему эти бомбы-вилки работают по-разному, и каково значение & в этом?

Я понимаю, как работает обычная вилочная бомба, но я не совсем понимаю, почему & в конце обычной бомбы вилки требуется и почему эти сценарии ведут себя по-разному: :(){ (:) | (:) }; : и :(){ : | :& }; : Первый вызывает всплеск использования процессора, а затем возвращает меня к экрану...

16
Почему функция fork () была разработана для возврата файлового дескриптора?

На его веб - странице о с трюком собственной трубы , Dan Bernstein объясняет состояние гонки с select()и сигналами, предлагает обходной путь и приходит к выводу , что Конечно, правильно было бы fork()возвращать дескриптор файла, а не идентификатор процесса. Что он подразумевает под этим - это...

15
Файловый дескриптор и форк

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