我有一个由第三方开发者提供的JAVA-Jar-File。 文件从STDIN读取并写入STDOUT。
我能够将JAR-File配置为写入日志文件。
但我还必须将STDIN的输入源重写为命名管道,因此我可以通过自己的应用程序将命令发送到java-pocess。
我已经尝试过从管道中读取这两件事(bash):
cat < pipeline_name | java -jar external_application.jar
这适用于第一个命令。收到第一个输入行后,'cat'终止,我无法发送命令。
我的另一个尝试:
tail -f pipeline_name | java -jar external_application.jar
这很好用。所有命令都传递给JAVA-Application。 但是:如果java应用程序正在终止,那么tail -f将像以前一样运行。
我需要一个解决方案,如果JAVA-Process正在终止,则停止从管道读取。
非常感谢
答案 0 :(得分:1)
使用bash redirection和heres a cheatsheet
java -jar external_application.jar < pipeline_name
&lt;表示java进程将从pipeline_name
读取它的stdin