让我们说我有一个脚本来启动一些java的东西
start.sh
myStuff=10.0.0.13
port=11212
servers=(10.0.0.9 10.0.0.10 10.0.0.11 10.0.0.12 10.0.0.14)
T=$1
R=$2
nohup java -jar myJar.jar -l ${myStuff} -p ${port} -t $T -r $R -m "${servers[@]/%/:11212}" &
如果我手动启动脚本
./start.sh 64 1
例如,一切都按原样运作
现在
echo "nohup ./start.sh 64 1" | at now
然而,什么也没做。
为什么?
我之前已经开始使用类似的脚本(但是没有一个叫java,但我似乎无法弄清楚它们之间的区别。
修改
嗯,并非完全没有,这项工作已经安排好并且确实从atq
消失了,但罐子没有启动,而且在任何地方都没有nohup.out
。
编辑2
请注意
echo "nohup ./start.sh 64 1 > help &" | at now
确实创建了一个help
文件(不是nohup.out
文件),但它是空的。
编辑3
请注意更改start.sh,以便硬编码java二进制文件的路径:
nohup /usr/lib/jvm/java-1.7.0-openjdk-amd64/bin/java -jar myJar.jar -l ${myStuff} -p ${port} -t $T -r $R -m "${servers[@]/%/:11212}" &
也没有帮助。
编辑4
echo "nohup java -version > help &" | at now
创建一个空的help
文件(但没有nohup.out
)。
尽管
echo "nohup java -version > help 2>&1 &" | at now
将打印
java version "1.7.0_111"
OpenJDK Runtime Environment (IcedTea 2.6.7) (7u111-2.6.7-0ubuntu0.14.04.3)
OpenJDK 64-Bit Server VM (build 24.111-b01, mixed mode)
进入help
文件(而不是创建nohup.out
文件)。
编辑5
摆脱了nohup,即
java -jar myJar.jar ...
然后
echo "./start.sh 64 1" | at now
不会改变任何事情。