2010-02-16 6 views
0

Я работаю в Linux. У меня есть две программы, которые запускаются в течение бесконечного времени (т. Е. Не будут останавливаться, если я не убью процесс). Я хочу сначала запустить программу 1, а затем запустить программу 2 через 20 секунд (оба должны будут запускаться одновременно, когда один читает записанный файл другой). В настоящее время я запускаю 2 программы, вручную отслеживая время. Есть ли способ автоматизировать это? т.е. есть ли команда или может любая программа будет написана, чтобы сделать это ..Как автоматизировать запуск 2-х программ?

+1

Если ваши потребности в синхронизации являются грубыми, этого будет достаточно. Однако, если ваш продюсер и потребитель могут долго работать или могут работать с разной скоростью, я подозреваю, что потребуется более сложное решение. –

+0

потребитель и производитель работают с одинаковыми ставками. – trinity

+0

Мне интересно, откуда ты знаешь? –

ответ

1
prog1 & 
sleep 20 
prog2 
+0

2 программы: first_auto.c и через 20 секунд, prime_auto.c как скомпилировать и запустить .. не могли бы вы объяснить. – trinity

+0

@trinity: Это другой вопрос. Задайте новый вопрос. –

+2

Если вы не знаете, как скомпилировать свои программы, вы должны сначала исследовать их. –

0

Использование оболочки:

$ program1 & сон 20; program2

+0

эй спасибо, это сработало. – trinity

0

Если одна программа считывает из выходного файла с помощью другой, вы должны рассмотреть вопрос об использовании трубы, чтобы передать выход от одного к входу другого:

$> program1 | program2

Я предполагаю, что у вас есть контроль над этими двумя программами и может заставить их писать до stdout и читать от stdin.

+0

На самом деле, я поддерживаю круговой буфер файлов - f1, f2, f3 .. и первая программа записывает в эти файлы, переключаясь между ними каждые 20 секунд. И читательская программа также читает из них. Я написал код, чтобы сделать это, и он отлично работает. – trinity

 Смежные вопросы

  • Нет связанных вопросов^_^