я получил Makefile, который запускает tunslip, как это:Makefile: запустить процесс и сделать что-то еще после того, как процесс полностью начал
connect-router: $(CONTIKI)/tools/tunslip6
sudo $(CONTIKI)/tools/tunslip6 -B $(TUNSLIP_BAUD) $(PREFIX) -v6
То, что я хочу, это то, что после этого tunslip полностью инициализирован, он запускает демона для заполнения некоторых таблиц маршрутизации. То, что я попытался это:
connect-router: $(CONTIKI)/tools/tunslip6
@echo "Doing tunslip"
sudo $(CONTIKI)/tools/tunslip6 -B $(TUNSLIP_BAUD) $(PREFIX) -v6
@echo "Doing routing tables"
sudo smcroute -k
sudo smcroute -d
Первое эхо достигнуто, процесс запущен, но другие команды не выполняется, вероятно, потому, что Makefile занят делают этот процесс, не давая второе эха ! Однако мне нужно, чтобы smcroute запускался после того, как туннель полностью инициализирован, поэтому должен быть этот порядок. Как мне это сделать?
Edit:
connect-router: $(CONTIKI)/tools/tunslip6
@echo "Doing tunslip"
(sudo $(CONTIKI)/tools/tunslip6 -B $(TUNSLIP_BAUD) $(PREFIX) -v6)
@echo "Doing routing tables"
sudo smcroute -k
sudo smcroute -d
Как сказано [здесь] [1], запустите команду tunslip6 в подоболочке. [1]: http://stackoverflow.com/questions/7668311/makefile-run-processes-in-background – Amessihel
При запуске, как написано сделать только висит на 'tunslip6' линии навсегда? –
Я поместил команду между(), но она все еще не работает. Для получения точного кода см. Мой пост. Редактировать: Не видел вас там! Нет, при запуске как написано процесс tunslip6 просто выполняется, а другие никогда не получают такой возможности. –