Описание тега waitpid

Функция waitpid() - это функция POSIX, предназначенная для ожидания изменений статуса и для получения информации о статусе дочернего процесса, статус которого изменился.
1 ответ

Почему waitpid не ждет завершения процесса?

В приведенном ниже сценарии я пытаюсь выяснить, как waitpid работает, но не ждет ssh процесс для выхода. done печатается сразу, а не после ssh процесс существует. Вопрос Как сделать waitpid только продолжить, когда пид, который я даю, вышел? #!/usr/…
28 дек '14 в 13:57
3 ответа

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

Мне нужно поймать возвращенное значение дочернего процесса.. Проблема в том, что с помощью функции waitpid() я могу поймать только 8 битов возвращаемого значения WEXITSTATUS(wstatus) возвращает статус выхода ребенка. Он состоит из наименее значащих …
22 июн '18 в 07:23
1 ответ

Форк и waitpid в C

У меня есть этот кусок кода, может быть, я что-то упустил: const int NPROCESSES = 32; pid_t pids[128]; for (int i = 0; i < NPROCESSES;i ++) { pids[i] = fork(); if (!pids[i]) { /*... other code ...*/ exit(0); } } for (int i = 0; i < NPROCESSES;…
18 дек '16 в 18:54
0 ответов

Понимание реентерабельной родительской функции, которая ожидает дочернего процесса неблокирующим образом

У меня есть некоторый код C++, работающий в Linux, в котором рекурентный, возвращающий bool, родительский процесс разветвляет дочерний процесс (конечно, только один раз), а затем использует waitpid для проверки состояния выхода указанного дочернего …
24 июн '17 в 19:50
1 ответ

C в Unix: форк, waitpid и трубы

Мой вопрос о том, как контролировать выполнение процесса в отношении каналов, и, в частности, реализацию wait / waitpid функция. Когда я создаю канал для следующей команды ls | head -3Я делаю следующее: Я создаю трубу, разворачиваю процесс создания …
18 июн '16 в 09:12
2 ответа

Почему waitpid(-1, &status, 0) вообще не приостанавливает процесс без дочерних элементов?

Я не очень хорошо понимаю функцию waitpid(). В руководстве сказано: The wait() system call suspends execution of the calling process until one of its children terminates. The call wait(&status) is equivalent to: waitpid(-1, &status, 0); Исто…
16 ноя '14 в 13:22
2 ответа

UNIX процессы: fork() и wait()

Это мой вопрос fork() и соответствующие wait() Это будет происходить: В моем main()Я вызываю функцию, скажем function() который использует fork() системный вызов, но я хочу function() вернуться, не дожидаясь, пока дети прекратят свое существование, …
13 янв '12 в 17:38
0 ответов

Поведение waitpid() в нескольких потоках?

C++ под Linux (CentOS 6.3), используя pthreads. gcc 4.7. Сейчас я поддерживаю программу, в которой основной поток выполняет блокирующий вызов waitpid(-1,...) для получения всех возможных дочерних элементов. В потоке, порожденном ранее из основного п…
24 фев '15 в 17:27
2 ответа

Ptrace/ ждать не ребенка

int Enable ( int pid) { int status; #if 1 { printf ( "child pid = %d \n", pid ); long ret = ptrace (PTRACE_ATTACH, pid, NULL, NULL); do { int w = waitpid(-1, &status, 0); if (w == -1) { perror("waitpid error :"); exit(EXIT_FAILURE); } if (WIFEXI…
04 дек '13 в 02:23
3 ответа

Параметры ожидания ()

#include<stdio.h> #include<sys/types.h> #include<unistd.h> int main() { int status; int pid = fork();assigned to variable "pid" if(pid == 0) { printf("I am the child with pid = %d\n", getpid()); } else { printf("I am the parent wit…
04 окт '15 в 13:43
2 ответа

Запуск команд из дочернего процесса

Я хочу создать оболочку, в которой дочерний процесс запускает команды linux (с помощью execvp), такие как "ls" и т. Д. Я также хочу иметь возможность запускать команды с аргументами, такими как "ls -a" или "ls -l". /tmp"Родитель должен ждать, пока р…
12 ноя '15 в 22:13
0 ответов

Достаточно ли одного waitpid, чтобы убить процесс?

Эта строка кода уничтожает и пожинает дочерний процесс без операции уничтожения? waitpid(pid,&cs,0); Или это должно быть в этом формате, чтобы убить и пожинать процесс? kill(pid,SIGTERM); waitpid(pid,&cs,0);
18 мар '18 в 08:59
1 ответ

Как дождаться запуска процесса в gnome-терминале> 3.8

GNOME разработчики убрали опцию disable-factory из gnome-терминала примерно в версии 3.8. В то время как в Wheezy есть более старая версия, в Джесси есть 3,14. Когда эта опция использовалась, gnome-терминал (<3.8) оставался в ожидании, пока работающ…
03 ноя '14 в 15:16
1 ответ

Как дождаться завершения нескольких экземпляров одной программы в Linux?

Как мне дождаться завершения нескольких экземпляров одной и той же программы? Ниже моего сценария какие-либо предложения или указатели? Мне нужно перезапустить работающий процесс C. После долгого поиска в Google, я понял, что перезапуск может быть в…
06 авг '15 в 09:43
1 ответ

Функция wait() в Ubuntu

Я изучаю процессы и их поведение в Ubuntu, но я немного запутался в wait(). Итак, мои вопросы: Как выполняется оценка while(wait(NULL)>0); работает? Какова цель NULL в wait()? Я видел вывод в терминале, но родитель выполняет и делает детей, даже ког…
23 сен '12 в 10:27
2 ответа

wait(NULL) не ждет, пока не завершится разветвленный процесс

Это функция, которая выполняет команды в дочернем процессе с помощью system(). Но как только команда завершит выполнение, она должна прекратиться. Тем не менее, при запуске команды ps я обнаружил, что запущен новый процесс a.out. Предполагалось, что…
04 дек '18 в 04:12
3 ответа

Правильный способ получить возвращаемое значение команды wait <pid>

У меня есть следующий код в скрипте bash: for job in `jobs -p`; do echo "PID =&gt; ${job}" if ! wait ${job} ; then echo "At least one test failed with exit code =&gt; $?" ; EXIT_CODE=1; fi done wait &lt;pid&gt;, в этом случае, wait ${job}, должен ве…
14 фев '17 в 05:24
1 ответ

Какие системы не поддерживают опцию WNOHANG для waitpid?

У меня есть библиотека для управления дочерними процессами, которая основывается на передаче опции POSIX WNOHANG в waitpid для выполнения неблокирующего ожидания процесса. Говорят, что не все системы поддерживают эту опцию, но я давно работал над лю…
13 окт '09 в 18:29
1 ответ

Команда времени ожидания Perl в Windows и Linux

Я пишу Perl-скрипт, который должен работать в Windows и Linux, который будет запускать процесс, тайм-аут, если это займет слишком много времени, вернуть код завершения, если он не истек, и вернуть stdout, предполагая, что код выхода равен нулю, и эт…
13 дек '18 в 21:41
0 ответов

PHP: как обнаружить ошибку дочернего процесса и нормальный выход?

Когда дочерний процесс выдает ошибки, такие как PHP error/warning/note, есть ли способ узнать от родительского процесса? Я пытаюсь следующий код, но он возвращает выход нормально. &lt;?php $pid = pcntl_fork(); if ($pid &gt; 0) { echo "pid: $pid\n"; …
08 фев '19 в 02:50