Запуск файла .jar несколько раз - PullRequest
0 голосов
/ 08 января 2019

Итак, я запускаю скрипт bash ниже:

#!/bin/bash
cd /data/www/usr/rzzw/todo/
for i in *; do
    endpoint=$(less $i | sed -rn 's/(.*\|endpoint - )(.*)/\2/p')
    nohup java -jar /data/www/usr/rzzw/sum/file.jar /data/www/usr/rzzw/sum/config.properties $endpoint 1>"../done/$i-out" 2>"../done/err/$i-err" &
done

Работает нормально, создает логи и запускает JAR-файл X раз. Это именно то, что я хотел. Файл jar начинает получать информацию о конечной точке SPARQL.

Но в начале этот файл должен делать сложный выбор SPARQL, что может занять много времени. Во время ожидания ответа «что-то» убивает эти процессы. Я ожидал, что nohup позаботится о фоновом процессе & .

STDERR:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

Эта ошибка возникает только тогда, когда команды выполняются сценарием. Когда я пытаюсь это сделать самостоятельно в терминале Linux, ошибок нет.

Пример рабочей команды:

nohup java -jar /data/www/usr/rzzw/sum/file.jar /data/www/usr/rzzw/sum/config.properties data.archiveshub.ac.uk/sparql 1>out 2>err &

Есть ли какое-то другое решение для запуска файла -jar несколько раз, или этот сценарий bash может каким-то образом подождать, пока он не ответит?

Я не создал этот файл -jar, и все, что происходит во время его выполнения, записывается только в командной строке.

...