У меня есть программа, для которой я пишу скрипт в формате /etc/init.d
.Как ждать запуска программы, а затем ее фон?
Проблема в том, программа не deamonize себя. Это займет 5 секунд, чтобы запустить его, и когда он инициализирован, он печатает строку («Начать OK») на stdout.
Я ищу для создания скрипта, который запускает процесс, ждет, пока строка появится, а затем продолжит выполнение сценария, указывая на неудачу или успех (строка была найдена).
Очевидно, что это не работает, как я хочу.
daemon $PROGRAM &
Скорее
(./proc > some_output) &
poll_output_for "Started OK" 10 secs or die
Я предполагаю, что у вас нет доступа к источнику этой программы? Я был в аналогичной ситуации с wpa_supplicant и dhcpcd, я сделал уродливое решение для статуса опроса для wpa_supplicant, так как он, к счастью, имеет wpa_cli, и когда тот вернул успех, я продолжил. – Jite
это поможет? http://stackoverflow.com/questions/19326245/bash-wait-for-process-start –
Если все остальное не удается, вы можете выполнить './program & sleep 10'. Это дало бы программе время для начала. Но вы не сможете обнаружить отказ таким образом. Я отправляю это как комментарий вместо ответа, потому что это просто обходной путь вместо реального ответа. – Jonathan