У меня есть программа, которая запускается в командной строке (т. Е. $ run program
запускает подсказку), которая выполняет математические вычисления.Он имеет собственную подсказку, которая принимает ввод текста и отвечает через стандартную ошибку / ошибку (или создает отдельное x-окно, если необходимо, но это можно отключить).Иногда я хотел бы отправить его небольшим вводом, а иногда я посылаю большой текстовый файл, заполненный серией входных данных в каждой строке.Эта программа занимает много ресурсов, а также имеет большое время запуска, поэтому было бы лучше, чтобы одновременно работал только один ее экземпляр.Я мог бы оставить открытую подсказку программы и ввести данные таким образом, или я могу отправить процесс с помощью команды выхода (чтобы оставить подсказку), которая просто печатает вывод.Проблема с отправкой запроса с помощью команды выхода заключается в том, что программа должна запускаться каждый раз (медленно ...).Кроме того, выходные данные этой программы иногда являются загадочными, и было бы полезно каким-то образом отфильтровать выходные данные (например, упростить вывод, применить цвета ANSI и т. Д.).
Это все заставляет меня хотеть поставить 2-проходной IO-фильтр (или это «труба»? или «обертка»?) вокруг программы, чтобы программа могла работать в фоновом режиме как отдельный процесс.Я бы тогда общался с ним без перезагрузки.Я также хотел бы иметь все это при фильтрации вывода, чтобы быть более удобным для пользователя.Я искал повсюду идеи, и я ошеломлен, как достичь этого в какой-то простой доступной для раковины усадьбе.
Некоторые вещи, которые я пробовал, были перенаправлением stdin и stdout на файлы, но программа зависает (не закрывается) и читает файл только один раз, из-за чего я не могу продолжить связь.Я думаю, что это произошло потому, что после EOF приглашение ожидает некоторого пользовательского ввода.Я думал, что это можно настроить как локальный сервер, но я не уверен, как начать это делать.
Я бы хотел найти какой-нибудь простой способ сделать это.Кроме того, если вы можете придумать, как это сделать, думаете ли вы, что есть способ разрешить присоединение или отсоединение к приглашению по запросу?Буду признателен за любую помощь и идеи.