저는 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의 올바른 사용.