所以我在下面运行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文件,并且在执行过程中发生的所有事情都只写在命令行中。