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

15
Как именно типичная «бомба» снаряда называет себя дважды?

Пройдя через знаменитые вопросы о Fork Bomb на Askubuntu и многих других сайтах Stack Exchange, я не совсем понимаю, что все говорят, как будто это очевидно. Многие ответы ( лучший пример ) говорят так: « {:|: &}означает запустить функцию :и :снова отправить ее вывод в функцию» Ну, что именно...

13
Как полностью разветвить команду оболочки, которая использует перенаправление

Я написал довольно много сценариев оболочки за эти годы (но я определенно не являюсь системным администратором), и есть кое-что, что всегда доставляло мне неприятности: как я могу развить команду оболочки, невосприимчивую к зависаниям в фоновом режиме, из сценария Bash ? Например, если у меня есть...

13
В чем разница между fork () и vfork ()?

Я хотел бы подробно понять разницу между fork () и vfork (). Я не смог полностью переварить справочную страницу. Я также хотел бы пояснить комментарий одного из моих коллег: « В текущем Linux нет vfork (), даже если вы его вызываете, он будет внутренне вызывать fork () »....

12
Когда процесс разветвляется, копируется ли его виртуальная или резидентная память?

Стандартный способ создания новых процессов в Linux состоит в том, что объем памяти родительского процесса копируется, и он становится средой дочернего процесса до тех пор, пока не execvбудет вызван. О каком объеме памяти мы говорим, виртуальном (о чем просил процесс) или резидентном (что на самом...

12
Как ksh93 избегает разветвлений в подстановке команд

Данный cmd='fun(){ echo "$@"; }; fun $(fun $(fun hi))' снаряды, как правило, должны сделать 2 вилки, чтобы это произошло strace-f(){ strace -f "$@" 2>&1; }; for sh in dash bash zsh ksh; do printf "$sh\t" ; strace-f $sh -c "$cmd" |grep -e clone -e fork -c; done кроме kshгероически делает это,...

12
Почему дочерний элемент vfork или fork должен вызывать _exit () вместо exit ()?

Со страницы руководства vfork(): vfork () отличается от fork () тем, что родительский элемент приостанавливается до тех пор, пока дочерний элемент не вызовет execve (2) или _exit (2). Дочерний узел совместно использует всю память со своим родителем, включая стек, до тех пор, пока дочерний объект не...

11
Почему vfork () предназначен для использования, когда дочерний процесс вызывает exec () или exit () сразу после создания?

Концепции операционной системы и APUE говорят При использовании vfork () родительский процесс приостанавливается, а дочерний процесс использует адресное пространство родительского процесса. Поскольку vfork () не использует копирование при записи, если дочерний процесс изменяет какие-либо страницы...

9
Threads vs (Forked) Процессы

Приложения Linux, как правило, разветвляются затем на exec (с execve ()), но приложения Java и некоторые MPM Apache используют многопоточность. Если разветвляется, использует fork + exec для запуска процесса, какова высокоуровневая версия для многопоточности? Как JVM или Worker MPM порождают...

9
Получить вывод `posix_spawn`

Таким образом, я могу запустить процесс в Unix / Linux, используя POSIX, но есть ли способ сохранить / перенаправить как STDOUT, так и STDERR процесса в файл? spawn.hЗаголовок содержит замедление , posix_spawn_file_actions_adddup2который выглядит уместно, но я не уверен , совсем как его...

9
Когда сами вызывать fork () и exec ()?

Я изучаю команды fork () и exec (). Кажется, что fork () и exec () обычно вызываются вместе. (fork () создает новый дочерний процесс, а exec () заменяет текущий образ процесса новым.) Однако в каких случаях вы можете вызывать каждую функцию отдельно? Есть ли такие...

8
Могу ли я передать любые два процесса друг другу?

На этой странице из Проекта и внедрения операционной системы 4.4BSD сказано, что: Основное различие между каналами и сокетами заключается в том, что каналам требуется общий родительский процесс для настройки канала связи. Однако, если я записываю правильно, единственный способ создать новый процесс...

3
Когда вызывается vfork, действительно ли родительский процесс действительно приостановлен?

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