尝试运行gradle构建时获取disconnectableinputstream源读取器

06odsfpq  于 2021-07-23  发布在  Java
关注(0)|答案(1)|浏览(567)

我有一个脚本 gradle build 这样地。。。

$HOME_DIR$CODE_DIR/gradlew -p $HOME_DIR$CODE_DIR build

当我经常这样做的时候 ./start.local.sh 很好用。但是当我试着用nohup的时候 nohup ./start.local.sh & 我得到。。。

Exception in thread "DisconnectableInputStream source reader" org.gradle.api.UncheckedIOException: java.io.IOException: Bad file descriptor
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:57)
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:40)
    at org.gradle.util.DisconnectableInputStream$1.run(DisconnectableInputStream.java:125)
    at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.io.IOException: Bad file descriptor

我错过了什么?

mm5n2pyu

mm5n2pyu1#

试着定义一个输入流描述符,这个魔术对我很有效:

nohup ./start.local.sh > build.log 2>&1 < /dev/null &

这是中描述的已知gradle错误https://issues.gradle.org/browse/gradle-3535. gradle期望输入(stdin)和输出流(stdout和stderr)。当您使用nohup命令时,没有stdin和stdout/err,如果应用程序有严格的要求,您应该定义它们:

2>&1 - redirect for stderr to stdout, 
 > build.log - redirect stdout to log file, 
 < /dev/null - use /dev/null as input stream

相关问题