运行一个进程,该进程在后台等待输入,而不会暂停并且不发送输入

cga*_*gag 2 linux bash redirect background-process

我有一个程序会执行以下操作,以等待有人按Enter退出:

spawnThreadAndDoStuff();
System.in.read();
System.exit(0);
Run Code Online (Sandbox Code Playgroud)

我想从脚本中无限期地在后台运行它,并在我希望结束时将其杀死。我以为从/ dev / null读取输入可以做到这一点,但是似乎没有用。我的脚本看起来像:

#!/bin/bash
java -cp someapp > mylog.log < /dev/null &
Run Code Online (Sandbox Code Playgroud)

我做错了吗,还是我的方法刚刚结束?解决这个问题的正确方法是什么?

Emi*_*lva 5

/dev/null无法读取,因为会read立即返回文件结尾。

这对我有用:

(while true; do sleep 10000; done) | java -cp someapp > mylog.log &
Run Code Online (Sandbox Code Playgroud)

第一条命令将永远休眠,从不提供任何输入。