我在 Linux 上运行使用 Java 的 Fisheye。设置如下:
生成选项
FISHEYE_OPTS=`$JAVACMD -Xms100m -Xmx200m -cp $FISHEYE_HOME/fisheyeboot.jar com.cenqua.fisheye.boot.OptsSetter`
构建鱼眼命令
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 内置命令的更多信息 -有关 shell 内置命令的 Bash 手册。
- 我几年前写的一篇关于正确使用nohup。