0

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が、jar は開始されず、nohup.outどこにもありません。

編集2

ご了承ください

echo "nohup ./start.sh 64 1 > help &" | at now

ファイルを作成しますがhelp(nohup.outファイルではありません)、空です。

編集3

Java バイナリへのパスがハードコードされるように start.sh を変更することに注意してください。

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

何も変わりません。

4

0 に答える 0