1
ответ

Почему 'ls' создается вызовом execve (), а не fork()

Насколько я понимаю, всякий раз, когда вы вводите команду, такую ​​​​как «ls», в своей оболочке, родительский процесс, который является моей оболочкой, дублирует себя, используя системный вызов fork (), а затем использует системный вызов exec ()для...
15.04.2021
1
ответ

как создать канал, разветвляющий два процесса

может ли кто-нибудь помочь мне понять, что требует этот вопрос? и шаги, чтобы сделать это? «Напишите простую программу, которая создает канал, разветвляющий два процесса, а затем отправляет данные через...
05.03.2021
1
ответ

Есть ли лучший метод, чем ptrace, для перехвата ("отлова" )системных вызовов Linux, исходящих от разветвленного процесса?

Я хотел бы перехватывать все системные вызовы, исходящие от разветвленного процесса, модифицировать их, отправлять в ядро, а затем передавать их обратно разветвленному процессу. Возможно ли это, и если да, то как мне поступить...
29.12.2020
1
ответ

Отправить сигнал приостановленному родительскому процессу и гарантировать, что он прибудет ПОСЛЕ приостановки родительского процесса

У меня есть такой псевдокод -, и я хочу знать, что я должен изменить, чтобы гарантировать, что сигнал, отправленный родителю, действительно поступит после того, как родитель приостановит работу. внутренний основной (){...
13.11.2020
1
ответ

Как именно программы или команды оболочки bash работают в системах Linux?

Я изучаю, как процессы и оболочка работают в системе Linux. Я хотел бы проконсультироваться с вами, чтобы убедиться, что мои выводы верны. Когда мы запускаем систему, ядро ​​запускает процесс инициализации,...
18.10.2020
1
ответ

Три вопроса о дочерних оболочках :Продолжительность жизни и создание

Заканчивается ли жизнь дочерней оболочки вскоре после ее создания? То есть заменяются ли его активы процессом, который будет в нем выполняться? Скажем, мы запустили grep -r "что-то" в bash, поэтому наш...
10.09.2020
1
ответ

Могу ли я заставить какой-либо процесс выполнять системный вызов fork извне этого процесса?

Допустим, есть программа, ожидающая ввода данных пользователем. Если пользовательский ввод — «A», программа переходит в состояние s _a, а если пользовательский ввод — «B», программа переходит в состояние s _b. Я не знаю, какое состояние мне нужно,...
22.05.2020
1
ответ

Как я могу использовать fork для вычисления частичных результатов вычислений?

Задача, которая была дана мне, заключается в том, что я должен найти все числа, которые делят число (назовем его х )и узнать, сколько раз оно делится. Я должен использовать вилку, чтобы выполнить задачу. Что я...
17.05.2020
1
ответ

Повторяющийся вывод printf() на стандартный вывод каждый раз, когда вызывается fork(), несмотря на то, что printf() вызывается до fork(). И почему '\n' исправляет это?

Играясь с fork(), я заметил довольно странное поведение, но сам не мог понять, почему это происходит. В приведенном ниже примере каждый раз, когда fork() вызывается, вывод из ...
29.04.2020
1
ответ

Могу ли я дождаться завершения всех разветвленных процессов команды?

Предположим, что в фоновом режиме FOO запускает BAR. Как я могу дождаться завершения BAR в оболочке? Мне нужно решение, в котором я не меняю внутренности FOO (хотя я могу с неохотой менять BAR). ...
08.03.2020
1
ответ

Взаимодействующие программы stdin и stdout (создание программы робота для игры)

Настройка: У меня есть исполняемый файл, который я «не могу редактировать», так как у меня нет исходного кода. Когда я запускаю программу, она открывает игру, где через стандартный вывод передает мне несколько чисел, чтобы я мог...
23.01.2020
1
ответ

последовательность fork(), exec() с форматами объектных файлов?

Насколько я понимаю, системы POSIX полагаются на определенные форматы компоновщика для организации памяти во время последовательности вызовов fork() exec(). a.out, COFF и ELF являются широко известными форматами двоичных объектов...
30.10.2019
1
ответ

Разница между pid_max/ulimit. Как создать поддельные процессы?

Я пытаюсь изучить нюансы между pid_max и установкой пользовательских лимитов через ulimit. Насколько я понимаю, независимо от того, насколько высоки вы устанавливаете пользовательские ограничения (например, устанавливаете максимальные пользовательские про
16.09.2019
1
ответ

Как создать процесс в Linux?

Я студент-исследователь, работаю над экспериментом с Linux, и для этого мне нужно создать процессы. Я знаю, как создавать их с помощью системного вызова fork(), но мне было интересно, существует ли...
22.06.2019
1
ответ

Прослушайте папку и изменять входящие файлы при изменении

Я хочу преобразовать файлы pcap в файлы json с помощью сценария оболочки (и tshark). Как только один или несколько новых файлов pcap будут скопированы в папку, должна быть выполнена команда tshark и полученный файл json...
15.05.2019
1
ответ

Два процесса с идентичным PID после вызова fork

Согласно документации fork (man 2 fork): Дочерний процесс является точной копией родительского процесса, за исключением следующих моментов: Дочерний процесс имеет свой собственный уникальный процесс ID и ...
28.03.2019
1
ответ

Почему вилочная бомба не может быть убита в ZSH так же, как она убита в Bash?

Я хотел сделать мою систему немного более устойчивой к вилке бомбы. Это может быть частично достигнуто с помощью параметра Systemd по умолчанию Dialktasksmax или с помощью контроллера PIDS Cgroup для всех действительных ...
24.12.2018
1
ответ

Список информации HBA-адаптеров в ОС Solaris 11

На самом деле, я хочу знать, как можно видеть Luns, представленные с помощью WWN-адаптеров HBA. Представление, которое я хочу, примерно такое: LUN (на стороне сервера, как/dev/rdsk/...) | WWN (с сервера) | Пути (...
15.10.2018
1
ответ

Форк () и поведение коровы после exec ()

Мы понимаем поведение коровы после вилки (Как, например, описанные здесь) следующим образом: FORK создает копию таблицы страниц родителей для ребенка и отмечает только физические страницы, так что если есть ...
16.09.2018
1
ответ

Как изменить рабочий каталог дочернего процесса с помощью posix_spawn? [закрыто]

В Linux (CentOS 7.5, ядро ​​3.10, gcc 7.3) возможно ли изменить рабочий каталог дочернего процесса, созданного posix_spawn, до того, как он запустит данный образ процесса (исполняемый файл)? Если да, то как? ...
12.09.2018
1
ответ

Что произойдет, если выполнить форк до switch_root?

Так что обычно сценарий initramfs / init чем-то заканчивается например, exec switch_root / newroot / sbin / init эффективно заменяет себя на systemd или что-то еще, что плавает ваша лодка. Но что произойдет ...
25.06.2018
1
ответ

Можно ли узнать, получена ли наша команда из сценария или введена вручную в командной строке?

У нас есть реализация для установки среды для конкретный инструмент с нашей настраиваемой командой. Например: custom_command имя_инструмента Эта команда регистрирует время вызова, имя пользователя и имя_инструмента в файле журнала. И ...
03.05.2018
1
ответ

Создание и завершение определенного дерева процессов

В настоящее время я посещаю курс «Компьютерные системы», и у меня возникли проблемы с домашним заданием. Мне нужно создать это конкретное дерево процессов: мне также нужно, чтобы оно оставалось в этом состоянии какое-то время (используя ...
01.03.2018
1
ответ

Почему оболочка не ждет дочернего процесса команды после выхода из команды ?

Я изучал процессы UNIX и не мог понять одного момента. Скажем, у нас есть такой код, void fork_child () {if (fork () == 0) {/ * Child * / printf ("Running Child, ...
20.02.2018
1
ответ

Почему файловые дескрипторы разделяются между разветвленными процессами?

Когда мы fork () процесс, дочерний процесс наследует файловые дескрипторы. Вопрос в том, почему? Как я вижу, совместное использование файлового дескриптора является головной болью, когда каждый процесс пытается сохранить ...
31.01.2018
1
ответ

Ветвление SSH уничтожает соединение

Я использую сценарий Linux, который имеет задачу передачи управления системы к удаленной поддержке. В этом сценарии одна из команд является ssh портом, направляют команду, которая передаст порт...
22.08.2017
1
ответ

Какова история позади fork-бомбы?

Я считал другие вопросы о его функциональности - что fork-бомбы работают и путем потребления процессорного времени в процессе разветвления, и путем насыщения таблицы процессов операционной системы...
21.08.2017
1
ответ

Yad forking and return results

Я пытаюсь сделать процесс yad сотрудничает с другим (монтировщиком, но это не очень важно). У меня есть такая структура кода (упрощенная) в критической части: ` yad --list --button=gtk-...
01.07.2017
1
ответ

docker fork/exec /proc/self/exe: cannot allocate memory

Через несколько дней docker отказывает с ошибками docker[8927]: level=error msg="Error running exec in container: execcantrun: Cannot run exec command 34a26 in container 4972e576: [8] Системная ошибка: fork/...
24.03.2017
1
ответ

Как действительно работает системный вызов fork

У меня очень конкретный вопрос о системном вызове fork. У меня есть этот фрагмент кода: int main (void) {for (int i = 0; i <10; i ++) {pid_t pid = fork (); if (! pid) {...
09.03.2017