LINUX.ORG.RU

А вот как подключиться к CLI сервиса?

 , ,


0

2

Есть у меня, допустим, приложение, и из него некоторым очевидным образом торчит консольный интерфейс. Если я хочу запустить его в виде сервиса, то как получать доступ к сабжу? Затея делать вторую софтину для морды и гонять данные через сокет выглядит не слишком здравой, как и засовывание рук внутрь андроидов с целью пощекотать /proc/$pid/fd/0.

Затея делать вторую софтину для морды и гонять данные через сокет выглядит не слишком здравой

Как раз наоборот.

vvn_black ★★★★★
()

И ещё наблюдение, сезонное поветрие что ли, количество топиков с неоформленными мыслями сильно увеличилось.

засовывание рук внутрь андроидов с целью пощекотать /proc/$pid/fd/0

Это вот как относится к консольной утилите?

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

наоборот

Ну не знаю. Поиметь лишние сущности на ровном месте и потом ещё выдумывать и поддерживать протокол их взаимодействия - такая себе затея, как по мне.

izzholtik ★★★
() автор топика
Ответ на: комментарий от vvn_black

сезонное

da
Экшли, я смотрю на spring shell со всеми его красивостями и подумываю, а как вообще его использовать предполагается, если спринг в основном для работающих в фоне штуковин используется. Какой-то конкретной задачи у меня нет.

это вот

это должно отпугивать любителей копипастить из первой выдачи гугла <_<

izzholtik ★★★
() автор топика
Последнее исправление: izzholtik (всего исправлений: 1)
Ответ на: комментарий от izzholtik

такая себе затея, как по мне

Обычная затея. Хорошая - это когда сразу спроектировать утилиту с нужными интерфейсами.

и потом ещё выдумывать и поддерживать протокол их взаимодействия

Если я правильно понял ОП, то просто бэк, который запускает консольную утилитку парсит выхлоп и отдаёт его по API - не так затратно.

vvn_black ★★★★★
()
Последнее исправление: vvn_black (всего исправлений: 1)
Ответ на: комментарий от vvn_black

парсит

ни. Утилита моя и консоль моя, я гадаю, как наименее криво наружу её выставить. Ясен пень, что можно навертеть отдельно от приложения морду и RPC между ними, на спринге такой проброс довольно тривиально выйдет, но не хочется ведь!

izzholtik ★★★
() автор топика

Наверное man mkfifo. Но всё же вопрос не совсем понятен, лучше поясни.

Legioner ★★★★★
()

неувядающая классика жанра

autoexpect

и соответственно except и Tk для Gui

MKuznetsov ★★★★★
()
Ответ на: комментарий от izzholtik

Утилита моя и консоль моя,

Так перепешите, чтобы основная функциональность была в библиотеке. А дальше она либо связывается с cli, либо с gui мордой.

ugoday ★★★★★
()
Последнее исправление: ugoday (всего исправлений: 1)

Если я правильно понял некоторый очевидный способ это stdin и stdout. Тогда приложение морда должно создать два неименованных пайпа и форкнуть приложение кли. Через первый пайп писать в stdin кли, через второй пайп читать отклик кли.

iliyap ★★★★★
()
Ответ на: комментарий от iliyap

О, вот про именованные пайпы я и забыл.

izzholtik ★★★
() автор топика

CLI — command line interface. Вдумайся в написанную тобой ересь.

Скажи, на каком языке написан сервис и какую функциональность он обеспечивает, тогда станет понятно, какой интерфейс прикручивать. К примеру, если оно на Go, то сам бог велел попросту использовать HTTP, там всё нужное есть из коробки. Так же D-Bus, либо Unix-сокет.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.