Перенаправление стандартного ввода через FIFO
Я запускаю серверное приложение (написанное на Java) под GNU/Linux, которое принимает данные (я полагаю, из stdin) и интерпретирует их для запуска некоторых команд. Я не хочу запускать приложение в окне терминала (я бы хотел запустить демон), но я все же хотел бы иметь возможность вводить команды, когда захочу. Я подумал, что смогу сделать это с помощью fifos, поэтому я создал его с помощью mknod. Проблема в том, что кошка fifofile > java... и кошка fifofile | Java... не удалось с ошибкой "файл не найден" по какой-то причине.
Использование только кота для чтения и записи, и fifo работает безупречно.
Есть ли способ исправить это или любой другой способ достичь той же цели?
2 ответа
Итак, Майнкрафт? Лучший способ сделать это - иметь добросовестный tty для консольной части приложения. экран это простой способ сделать это.
Ты пытался java < fifofile
? Как насчет чего-то вроде exec 3<&0; exec 0<fifofile; java
?
Какую оболочку вы используете? Вы можете использовать подстановку процессов или сопроцессы, если вы используете оболочку, которая их поддерживает.