私はLinuxでJavaを使用してFisheyeを実行しています。設定は次のとおりです。
ビルドオプション
FISHEYE_OPTS=`$JAVACMD -Xms100m -Xmx200m -cp $FISHEYE_HOME/fisheyeboot.jar com.cenqua.fisheye.boot.OptsSetter`
fisheye コマンドのビルド
FISHEYE_CMD="$JAVACMD $FISHEYE_OPTS -Xms100m -Xmx200m -Dfisheye.library.path=$FISHEYE_LIBRARY_PATH -Dfisheye.inst=$FISHEYE_INST -Djava.awt.headless=true -Djava.endorsed.dirs=$FISHEYE_HOME/lib/endorsed -jar $FISHEYE_HOME/fisheyeboot.jar"
次に、次を実行します。
cd $FISHEYE_INST
mkdir -p $FISHEYE_INST/var/log
nohup sh -c "exec $FISHEYE_CMD $@ $FISHEYE_ARGS >> $FISHEYE_INST/var/log/fisheye.out 2>&1" &
だから北面このコマンドはバックグラウンドでプログラムを実行します。 「メモリ不足」またはヒープファイルの内容が表示されても起動しません。
しかし、これはうまくいきますが、exec $FISHEYE_CMD $@ $FISHEYE_ARGS
バックグラウンドにはありません。
もしそうなら、バックグラウンドで実行するときにどのように多くのメモリを使用させることができるのか疑問に思います。
ベストアンサー1
あなたの例では、execコマンドは必要ないと思います。 nohupなしで試してみることはできますか?この試み:
nohup sh -c "$FISHEYE_CMD $@ $FISHEYE_ARGS >> $FISHEYE_INST/var/log/fisheye.out 2>&1" &
bash
上記の方法がうまくいかない場合は、以下を試してくださいsh
。
nohup bash -c "$FISHEYE_CMD $@ $FISHEYE_ARGS >> $FISHEYE_INST/var/log/fisheye.out 2>&1" &
最後に、これらの提案のいずれも機能しない場合は、「shell -c」パラメータをすべて削除してみましょう。この試み:
nohup "$FISHEYE_CMD $@ $FISHEYE_ARGS >> $FISHEYE_INST/var/log/fisheye.out 2>&1" &
引用する
- Bash 組み込みコマンドの詳細については、こちらをご覧ください。シェル組み込み用 Bash マニュアル。
- 私は数年前にそれについて書いた。nohupの正しい使用。