Я запускаю дочерние процессы в C, и я хочу приостановить, а затем запустить тот же дочерний процесс.Не совсем уверен, как лучше описать мою проблему, поскольку я новичок в этом, но вот пример.
Так что я знаю, что вы можете запустить процесс после завершения другого процесса, используя waitpid
.Но что, если процесс, которого я жду, не существует при создании процесса, который ожидает.Поэтому в данном случае я думаю о приостановке процесса, который выполняет ожидание, и когда процесс, который ожидает, создается и затем завершается, он вызывает процесс, который выполняет ожидание, чтобы снова запустить.Так как бы вы это сделали?Опять же, я не знаком с этим, поэтому я не знаю, является ли это правильным способом сделать это.
edit: Что я пытаюсь сделать
Яиспользуя дочерние процессы для параллельного запуска команды через execvp()
, поэтому, если у меня есть последовательность sleep 1; sleep 1;
, общее время ожидания составит 1 секунду.Однако есть случаи, когда я пытаюсь выполнить параллельное echo blah > file; cat < file;
, и в этом случае я предполагаю, что cat
читает файл после того, как echo
вводит бла в файл.Поэтому я должен ждать, пока echo
завершит выполнение cat
.В этом есть больше специфических особенностей, но обычно предполагается, что для любой команды с выводом в файл следует ожидать любую команду, которая читает файл позже в сценарии.