2장. Apache Karaf 시작 및 중지

초록

Apache Karaf는 서버를 시작하고 중지하기 위한 간단한 명령줄 도구를 제공합니다.

2.1. Apache Karaf 시작

Apache Karaf 런타임을 배포하는 기본 방법은 활성 콘솔이 있는 독립 실행형 서버로 배포하는 것입니다. 콘솔 없이 런타임을 백그라운드 프로세스로 배포할 수도 있습니다.

2.1.1. 환경 설정

환경을 수정하지 않고도 설치의 bin 하위 디렉터리에서 Karaf 런타임을 직접 시작할 수 있습니다. 그러나 다른 폴더에서 시작하려면 다음과 같이 Karaf 설치의 bin 디렉토리를 PATH 환경 변수에 추가해야 합니다.

Windows

set PATH=%PATH%;InstallDir\bin

Linux/UNIX

export PATH=$PATH,InstallDir/bin`

2.1.2. 콘솔 모드에서 런타임 시작

설치 디렉토리에서 Karaf 런타임을 시작하는 경우 다음 명령을 사용합니다.

Windows

bin\fuse.bat

Linux/UNIX

./bin/fuse

Karaf가 올바르게 시작되면 콘솔에 다음이 표시됩니다.

Red Hat Fuse starting up. Press Enter to open the shell now...
100% [========================================================================]

Karaf started in 8s. Bundle stats: 220 active, 220 total

 ____          _   _   _       _     _____
|  _ \ ___  __| | | | | | __ _| |_  |  ___|   _ ___  ___
| |_) / _ \/ _` | | |_| |/ _` | __| | |_ | | | / __|/ _ \
|  _ <  __/ (_| | |  _  | (_| | |_  |  _|| |_| \__ \  __/
|_| \_\___|\__,_| |_| |_|\__,_|\__| |_|   \__,_|___/___|

  Fuse (7.x.x.fuse-xxxxxx-redhat-xxxxx)
  http://www.redhat.com/products/jbossenterprisemiddleware/fuse/

Hit '<tab>' for a list of available commands
and '[cmd] --help' for help on a specific command.

Open a browser to http://localhost:8181/hawtio to access the management console

Hit '<ctrl-d>' or 'shutdown' to shutdown Red Hat Fuse.

karaf@root()>
참고

버전 Fuse 6.2.1 이후 콘솔 모드에서 시작하면 두 개의 프로세스가 생성됩니다. 즉, Karaf 콘솔을 실행하는 상위 프로세스 ./bin/karafjava JVM에서 Karaf 서버를 실행하는 하위 프로세스가 생성됩니다. 그러나 종료 동작은 이전과 동일하게 유지됩니다. 즉, Ctrl-D 또는 osgi:shutdown 을 사용하여 콘솔에서 서버를 종료하여 두 프로세스를 모두 종료할 수 있습니다.

2.1.3. 서버 모드에서 런타임 시작

서버 모드에서 시작하면 로컬 콘솔 없이 백그라운드에서 Apache Karaf가 실행됩니다. 그런 다음 원격 콘솔을 사용하여 실행 중인 인스턴스에 연결합니다. 자세한 내용은 17.2절. “원격 연결 및 연결 해제” 을 참조하십시오.

서버 모드에서 Karaf를 시작하려면 다음을 실행합니다.

Windows

bin\start.bat

Linux/UNIX

./bin/start

2.1.4. 클라이언트 모드에서 런타임 시작

프로덕션 환경에서는 로컬 콘솔만 사용하여 런타임 인스턴스에 액세스할 수 있어야 합니다. 즉, SSH 콘솔 포트를 통해 원격으로 런타임에 연결할 수 없습니다. 다음 명령을 사용하여 클라이언트 모드에서 런타임을 시작하여 이 작업을 수행할 수 있습니다.

Windows

bin\fuse.bat client

Linux/UNIX

./bin/fuse client
참고

클라이언트 모드에서 시작하면 SSH 콘솔 포트만 비활성화됩니다(일반적으로 8101 포트). 기타 Karaf 서버 포트(예: Cryostat 관리 RMI 포트)가 정상적으로 열립니다.

2.1.5. 디버그 모드에서 Fuse 실행

디버그 모드에서 Fuse를 실행하면 오류를 보다 효율적으로 식별하고 해결할 수 있습니다. 이 옵션은 기본적으로 비활성화되어 있습니다. 활성화된 경우 Fuse는 포트 5005 에서 JDWP 소켓을 시작합니다.

디버그 모드에서 Fuse를 실행하는 방법은 세 가지가 있습니다.

2.1.5.1. Karaf 환경 변수 사용

이 접근 방식은 KARAF_DEBUG 환경 변수(=1)를 활성화한 다음 컨테이너를 시작합니다.

$ export KARAF_DEBUG=1
$ bin/start

2.1.5.2. Fuse 디버그 실행

이 접근 방식은 suspend 옵션이 n (아니오)으로 설정된 debug 를 실행합니다.

$ bin/fuse debug

2.1.5.3. Fuse 디버그 실행

이 접근 방식은 suspend 옵션이 y (예)로 설정된 debug 를 실행합니다.

참고

suspend to yes로 설정하면 디버거가 연결될 때까지 JVM이 main() 를 실행하기 직전에 일시 중지되고 실행이 다시 시작됩니다.

$ bin/fuse debugs