Получение программы чтения исходного кода DisconnectableInputStream при попытке запустить Gradle Build - PullRequest
0 голосов
/ 05 июня 2018

У меня есть скрипт, который запускает 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

Что мне не хватает?

1 Ответ

0 голосов
/ 01 августа 2018

Попытайтесь определить дескриптор входного потока, у меня работает эта магия:

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

Это известная ошибка Gradle, описанная в https://issues.gradle.org/browse/GRADLE-3535. Ожидание Gradle для входных (stdin) и выходных потоков(стандартный вывод и стандартный вывод).Когда вы используете команду 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
...