В настоящее время я работаю со встроенной системой с ОС Linux.Мне нужно запустить несколько приложений одновременно, и я бы хотел, чтобы они могли запускаться через один скрипт.Один из коллег уже реализовал это, используя скрипт-обертку и коды возврата.
wrapperScript.sh $command & > output_log.txt
wrapperScript.sh $command2 & >output_log2.txt
Но проблема возникает при выходе из приложения.Обычно все приложения, находящиеся во встроенной системе, требуют от пользователя нажатия q
для выхода.Но скрипт-обертка вместо того, чтобы делать это, когда получает сигнал kill или пользовательский сигнал, просто уничтожает процесс.Это опасно, потому что скрипт-обертка предполагает, что приложение имеет надлежащие средства для обработки сигнала уничтожения (что не всегда так и приводит к утечкам памяти и нежелательным соединениям с сокетами).Я изучал автоматизацию таких программ, как ожидаемо, но так как я использую встроенную плату, я не могу рассчитывать на это.Есть ли способ в оболочке bash или встроенном C для работы с несколькими процессами, когда одна программа автоматически отправляет программам сигнал q
.
Мне также хотелось бы иметь возможность вести журнал и выводфайлы.
РЕДАКТИРОВАТЬ:
Решение:
Хорошо, я нашел проблему к проблеме, Ожидать способ решить эту проблему в любой ситуации.Существует серьезное ограничение, что это может замедлиться, но компромисс в этой ситуации неплох.Я решил использовать Expect Scripting Language для реализации этого решения.Есть определенные компромиссы.
Плюсы: * Точный контроль над встроенным приложением * Может сделать процесс интерактивным для пользователя * Может работать с несколькими процессами
Минусы: * Производительность низкая