Si, sirce para eso (lo usé con linset). Con lo de las librerías ni idea....
Necesito ayuda con jdownloader... Llevo desde las 5 con esto y no hay forma de que me salga....
java -jar /tmp/build/jdow*/pack*/opt/JDownloader/jdupdate.jar |
while read line; do
case "$line" in
*New*)
echo "'$line' ha acabado. Cerrando"
killall java
break
;;
esac
done
Cuando se lanza
jdupdate.jar desde el terminal
java -jar /tmp/build/jdow*/pack*/opt/JDownloader/jdupdate.jar
La salida de la consola se muestra bien. Sin embargo, cuando inteneto hacer lo mismo desde un script, me da problemas....
El output solo llega a una parte, concretamente esta:
00s.034 - FINEST [jd.utils.JDUtilities(getJDClassLoader)] -> Create Classloader: for: /tmp/build/jdownloader/package-jdownloader/opt/JDownloader
00s.053 - FINEST [jd.JDClassLoader(<init>)] -> rootDir:/tmp/build/jdownloader/package-jdownloader/opt/JDownloader
00s.330 - FINER [jd.config.DatabaseConnector(<init>)] -> Loading database
00s.330 - FINER [jd.config.DatabaseConnector(checkDatabaseHeader)] -> Checking database
/tmp/build/jdownloader/package-jdownloader/opt/JDownloader/config/WEBUPDATE.cfg (No existe el fichero o el directorio)
/tmp/build/jdownloader/package-jdownloader/opt/JDownloader/config/PACKAGEMANAGER.cfg (No existe el fichero o el directorio)
Y a partir de allí no aparece nada en el terminal. Es decir, en la consola de JAVA si aparece el output, pero no en el bash, que es donde me interesa.
Funciona bien. Es decir, en cuanto se encuentra
New, se mata el proceso
java, pero el usuario no ve que está pasando...
Lo maximo que he llegado a hacer es esto:
java -jar /tmp/build/jdow*/pack*/opt/JDownloader/jdupdate.jar 3>&1 1>&2 2>&3
Con esto, se ve TODO en el terminal, pero no reacciona cuando encuentra el New.
Todo esto es solo en modo de prueba. La idea final es ejecutar el update, ocultar la ventana de GUI y esperar hasta que acabe. En cuanto lo haga, cerrar java para evitar abrir JDownloader
Salu2