Я работаю в Linux. У меня есть две программы, которые запускаются в течение бесконечного времени (т. Е. Не будут останавливаться, если я не убью процесс). Я хочу сначала запустить программу 1, а затем запустить программу 2 через 20 секунд (оба должны будут запускаться одновременно, когда один читает записанный файл другой). В настоящее время я запускаю 2 программы, вручную отслеживая время. Есть ли способ автоматизировать это? т.е. есть ли команда или может любая программа будет написана, чтобы сделать это ..Как автоматизировать запуск 2-х программ?
ответ
prog1 &
sleep 20
prog2
2 программы: first_auto.c и через 20 секунд, prime_auto.c как скомпилировать и запустить .. не могли бы вы объяснить. – trinity
@trinity: Это другой вопрос. Задайте новый вопрос. –
Если вы не знаете, как скомпилировать свои программы, вы должны сначала исследовать их. –
Если одна программа считывает из выходного файла с помощью другой, вы должны рассмотреть вопрос об использовании трубы, чтобы передать выход от одного к входу другого:
$> program1 | program2
Я предполагаю, что у вас есть контроль над этими двумя программами и может заставить их писать до stdout
и читать от stdin
.
На самом деле, я поддерживаю круговой буфер файлов - f1, f2, f3 .. и первая программа записывает в эти файлы, переключаясь между ними каждые 20 секунд. И читательская программа также читает из них. Я написал код, чтобы сделать это, и он отлично работает. – trinity
Если ваши потребности в синхронизации являются грубыми, этого будет достаточно. Однако, если ваш продюсер и потребитель могут долго работать или могут работать с разной скоростью, я подозреваю, что потребуется более сложное решение. –
потребитель и производитель работают с одинаковыми ставками. – trinity
Мне интересно, откуда ты знаешь? –