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/karaf
와 java
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