Перенаправление стандартного ввода через FIFO - PullRequest
2 голосов
/ 30 декабря 2010

Я запускаю серверное приложение (написанное на Java) под GNU / Linux, которое принимает ввод (я полагаю, из stdin) и интерпретирует его для запуска некоторых команд.Я не хочу запускать приложение в окне терминала (я бы хотел запустить демон), но я все же хотел бы иметь возможность вводить команды, когда захочу.Я подумал, что смогу сделать это с помощью fifos, поэтому я создал его с помощью mknod.Проблема в том, что cat fifofile> java ... и cat fifofile |java ... по какой-то причине завершается с ошибкой "file not found".

Использование только cat для чтения и записи, а fifo работает безупречно.исправить это или каким-либо другим способом достичь той же цели?

Ответы [ 2 ]

8 голосов
/ 30 декабря 2010

Итак, Minecraft? Лучший способ сделать это - иметь добросовестный tty для консольной части приложения. screen - это простой способ сделать это.

1 голос
/ 30 декабря 2010

Вы пробовали java < fifofile? Как насчет exec 3<&0; exec 0<fifofile; java?

Какую оболочку вы используете? Вы можете использовать подстановку процессов или сопроцессы, если используете оболочку, которая их поддерживает.

...