-1

Я хочу создать сервис, который получает входные данные из сценария оболочки и возвращает выходные данные.

с чего начать и что делать? Пожалуйста, дайте мне пошаговую инструкцию или ссылку на нее.

Благодарю.

2 ответа2

1

Я не уверен, что вы подразумеваете под "услугой". Вы имеете в виду что-то, что можно вызвать и запустить в фоновом режиме? Если это так, ваши потребности могут быть удовлетворены сценарием Bash, который опрашивает файл на предмет ввода, принимает ввод, когда он найден в файле (предположительно, он будет передан сценарием оболочки, который генерирует ввод), а затем выводится через любой механизм вы выбираете. Вы можете заключить опрос в бесконечный цикл с помощью оператора sleep и установить фоновый сценарий для непрерывной работы через nohup (manpage). Тем не менее, я не уверен, что это достаточно надежно для ваших целей, в основном потому, что я не совсем уверен, что вы спрашиваете. Итак, давайте сделаем несколько шагов назад:

Существует множество способов написания демонов / сервисов в Unix, и ваш вопрос должен быть немного более конкретным, если вам нужны пошаговые инструкции. Некоторые хорошие места для начала могут быть: на каком языке вы хотите написать это? Какие виды ресурсов будет принимать эта служба? Что это будет выводить, в какой форме и куда / для кого / какого получателя? На более высоком уровне: вам действительно нужен сервис для этого, или вам нужен какой-то постоянно кэшируемый процессор данных, который может работать как отдельный исполняемый файл? Последний вариант часто является лучшим выбором, особенно если начинать с нуля, так как вы можете перенести множество проблем с быстрым последовательным / одновременным вызовом на внутренний поставщик персистентности (на мой взгляд, что-то вроде sqlite).

Если вы хотите написать это на Bash (что может быть не лучшим вариантом), я бы предложил начать здесь. Убедитесь, что вы полностью понимаете основы разветвления и мониторинга процессов в UNIX, в противном случае написание демонов, выполняющих произвольные функции, может оказаться "ножной пушкой" значительного размера.

Баш, как я уже говорил, не обязательно лучший выбор здесь. Perl содержит довольно надежное встроенное средство для этого в форме Proc::Daemon. Этот ТАК вопрос должен направить вас в правильном направлении, если вы выберете Perl.

Python также обладает этой способностью. Канонический пример демона Python, дополненный магией двойных вилок и кратким объяснением, можно найти здесь.

C/C++ также является общим языком для написания демонов, и существует множество руководств. Мне нравится этот, но мой опыт в этой области более ограничен, чем на других языках выше.

Помимо всего вышесказанного, этот вопрос, вероятно, относится к Stackoverflow.

0

Если вы хотите написать демона и программистом на C, возьмите себе копию Интерфейса программирования Linux: Руководство по системному программированию для Linux и UNIX ; у него есть целая глава и он очень ценный.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .