Führen Sie einen hintergrund-job von Gradle

Habe ich einen task starten einer remote-job-wie

task mytask(type: Exec) {
    commandLine 'ssh'
    args '-f -l me myserver ./start'.split(' ')
}

und es funktioniert, allerdings scheint es, zu warten, für den job zu kündigen. Aber es ist nie beendet, und es sollte nicht sein.

Tun das gleiche von der Kommandozeile funktioniert: Weil der -f schalten Sie die ssh Befehl wird im hintergrund ausgeführt.

Habe ich versucht, um '>&' /dev/null (csh stdout und stderr umleiten) auf der Kommandozeile, aber ohne Erfolg. Auch die offensichtliche & nichts getan. Ich habe auch extrahiert der Befehl Zeile in einem Skript, und es ist immer das gleiche: Gradle wartet auf Beendigung.

Lösung

Ich habe es gelöst, indem Sie ein Skript und umleiten sowohl stdout und stderr in das Skript. Mein problem kam von verwirrenden Umleitungen... durch die übergabe '>&' /dev/null ich umgeleitet streams auf dem remote-computer, aber was nötig war, war eine Weiterleitung auf die lokale (d.h., ohne die redirection-operator in Anführungszeichen).

InformationsquelleAutor maaartinus | 2014-08-13
Schreibe einen Kommentar