尝试 运行 Gradle 构建时获取 DisconnectableInputStream 源 reader
Getting DisconnectableInputStream source reader while trying to run Gradle Build
我有一个 运行 像这样的 gradle build
脚本...
$HOME_DIR$CODE_DIR/gradlew -p $HOME_DIR$CODE_DIR build
当我 运行 定期喜欢 ./start.local.sh
时,它工作正常。但是当我尝试像 nohup ./start.local.sh &
这样使用 nohup 时,我得到...
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.run(DisconnectableInputStream.java:125)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.io.IOException: Bad file descriptor
我错过了什么?
尝试定义一个输入流描述符,这个魔法对我有用:
nohup ./start.local.sh > build.log 2>&1 < /dev/null &
这是 https://issues.gradle.org/browse/GRADLE-3535 中描述的已知 Gradle 错误。
Gradle 期望输入 (stdin) 和输出流 (stdout 和 stderr)。当您使用 nohup 命令时,没有标准输入和 stdout/err,如果应用程序有严格的要求,您应该定义它们:
2>&1 - redirect for stderr to stdout,
> build.log - redirect stdout to log file,
< /dev/null - use /dev/null as input stream
在我的 React Native 项目中,我只清理 android 项目并重新构建。
cd android && ./gradlew clean
重新运行
cd .. && react-native run-android
我有一个 运行 像这样的 gradle build
脚本...
$HOME_DIR$CODE_DIR/gradlew -p $HOME_DIR$CODE_DIR build
当我 运行 定期喜欢 ./start.local.sh
时,它工作正常。但是当我尝试像 nohup ./start.local.sh &
这样使用 nohup 时,我得到...
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.run(DisconnectableInputStream.java:125)
at java.base/java.lang.Thread.run(Thread.java:844)
Caused by: java.io.IOException: Bad file descriptor
我错过了什么?
尝试定义一个输入流描述符,这个魔法对我有用:
nohup ./start.local.sh > build.log 2>&1 < /dev/null &
这是 https://issues.gradle.org/browse/GRADLE-3535 中描述的已知 Gradle 错误。 Gradle 期望输入 (stdin) 和输出流 (stdout 和 stderr)。当您使用 nohup 命令时,没有标准输入和 stdout/err,如果应用程序有严格的要求,您应该定义它们:
2>&1 - redirect for stderr to stdout,
> build.log - redirect stdout to log file,
< /dev/null - use /dev/null as input stream
在我的 React Native 项目中,我只清理 android 项目并重新构建。
cd android && ./gradlew clean
重新运行
cd .. && react-native run-android