49. 라이센스

iFun Engine 라이센스는 평가판 라이센스와 상용 라이센스로 구분됩니다. 상용 라이센스에 대한 가격 정책 등은 iFun Engine 홈페이지 를 참고해주세요.

49.1. 평가판 라이센스

아이펀 엔진을 설치한 경우, 기본 라이센스로 1주 동안 시험해 보실 수 있습니다. 만일 추가적인 평가가 필요한 경우, 엔진 홈페이지의 테스트 라이센스 신청 페이지 에서 6개월짜리 테스트 라이센스를 신청해서 받아보실 수 있으니 꼭 확인해보세요.

49.2. 라이센스 파일 적용

상용 라이센스를 구매하시거나, 6개월 테스트 라이센스를 신청하신 경우, 이메일로 account.ilf 란 라이센스 파일을 받게 됩니다.

49.2.1. Linux 서버에서 직접 작업 중일 경우

만일 현재 Linux 에서 작업 중이라면, /etc/ifunfactory/ 라는 디렉토리를 만들어서 해당 파일을 이 디렉토리에 복사만 하시면 됩니다.

$ sudo mkdir /etc/ifunfactory
$ sudo cp /path/to/account.ilf /etc/ifunfactory/
$ sudo chmod a+rX /etc/ifunfactory /etc/ifunfactory/account.ilf

49.2.2. Linux 서버에 원격으로 작업 중일 경우

Windows PC 를 사용 중이고, 아이펀 엔진을 원격에 있는 Linux 서버에서 돌릴 예정이시면, 해당 파일을 WinSCP 이나 FileZilla 혹은 PSCP/PSFTP 등 SCP 나 SFTP 를 지원하는 파일 복사 프로그램을 이용해서 리눅스 서버에 라이센스 파일을 복사하고 위처럼 해당 파일을 /etc/ifunfactory/ 로 복사해줍니다. 아래는 WinSCP 를 이용한 파일 복사의 예제입니다.

49.2.2.1. WinSCP 를 이용해서 license 파일 복사하기

  1. WinSCP 를 다운로드하고 설치합니다.
  2. WinSCP로 linux 서버에 연결합니다.

File Protocol은 SCP 혹은 SFTP를 선택해 주시고, Host Name, User name 을 지정하고 Login 을 누르면 서버에 연결이 됩니다.

_images/winscp1.png
  1. WinSCP 의 오른쪽 패널은 서버측 디렉토리를 표시하는데, 여기서 홈 디렉터리를 선택합니다. (계정명이 ubuntu 라면 기본값은 /home/ubuntu 입니다.

그리고, WinSCP의 왼쪽 패널은 지금 사용하고 있는 Windows PC 의 디렉토리를 표시하는데, account.ilf 를 찾아서 선택하고 Upload 버튼을 누릅니다.

_images/winscp2.png
  1. Putty 를 다운로드 받아 실행합니다. 위에서 사용한 Host Name 을 그대로 입력하고 엔터를 누릅니다.
_images/putty.png
  1. 서버에 접속되면 아이디와 패스워드를 물어보게 되는데 위에서 사용한 아이디와 패스워드를 입력해서 로그인합니다. 그 뒤에 다음 명령을 수행합니다. ($ 는 shell prompt 를 의미하고 타이핑하지 않습니다.)
$ sudo mkdir -p /etc/ifunfactory
$ sudo mv account.ilf /etc/ifunfactory/
$ sudo chmod a+rX /etc/ifunfactory /etc/ifunfactory/account.ilf

49.3. 라이센스 관련 문제 해결

49.3.1. 서버가 일정 시간 후 자동 종료할 때

...
E0202 00:08:49.916679  5918 main.cc:97] You are using non-production license.
iFun Engine stops after running for 30 minutes.
To run fully functional iFun Engine, contact sales@ifunfactory.com

시험판인 경우, 30분 후에 게임 서버가 자동으로 종료합니다. 정식 라이센스를 가지고 계신 경우 전달받은 account.ilf 파일을 이용해주세요.

Tip

시험판인 경우 /etc/ifunfactory/account.ilf 과 다음처럼 시작합니다.

# This is an evaluation license file for iFun Engine.
#
# If you have a contract with iFunFactory Inc., please use your copy of
# account.ilf instead of this.
#
# This license expires by Wed Feb 11 13:43:59 KST 2015.

1cc6917c261580cafc91267875b0fec62e8a5d0954d5b12dc7c9372378 ...

49.3.2. “Failed to find a valid account.ilf” 라는 메시지를 출력하면서 죽을 때

다음 처럼 서버가 죽는다면 /etc/ifunfactory/ 디렉토리 안에 라이센스 파일이 없거나, 아니면 아이펀 엔진을 실행한 리눅스 사용자가 해당 파일의 읽기 권한이 없는 경우입니다.

 $ ./proj_name-local
 I0204 13:21:42.998123  5741 main.cc:143] Crashreporter initialized; .dmp will be written to /home/ubuntu/work/proj_name/build/logs/../dumps
 E0204 13:21:43.182199  5741 capability.cc:433] Error response; ec=0; status=400
 E0204 13:21:43.182586  5741 capability.cc:438] Error: Incomplete request
 E0204 13:21:43.182627  5741 capability.cc:69] Failed to find valid account.ilf, which usually resides on /etc/ifunfactory/account.ilf.
 ./proj_name-local: line 51:  5741 Killed    $FUNAPI_BIN_DIR/funapi_runner ...

이 경우에는 account.ilf 파일을 다시 업로드해주시고, 아이펀 엔진을 돌리는 유저가 해당 파일을 읽을 수 있는지 다시 확인해주세요.

49.3.3. “account.ilf: not in valid datetime-range” 라는 메시지를 내면서 죽을 때

 ubuntu@vm:~/example-build/debug $ ./example-local
 I0218 23:06:12.701092 22481 main.cc:145] Crashreporter initialized; .dmp will be written to /home/ubuntu/example-build/debug/logs/../dumps
 E0218 23:06:13.480649 22481 capability.cc:258] account.ilf: not in valid datetime-range
 E0218 23:06:13.481799 22481 capability.cc:70] Failed to acquire license
 ./example-local: line 51: 22481 Killed                  $FUNAPI_BIN_DIR/funapi_runner --main_program_name=$component_name --framework_manifest_path="$manifests" --main_enabled_components=$ComponentName --resource_root="/home/ubuntu/example-build/debug/resources" --max_log_size=10 --stop_logging_if_full_disk --log_root_dir="$FUNAPI_LOG_ROOT_DIR" --crashdump_root_dir="$FUNAPI_DUMP_ROOT_DIR" --alsologtostderr "$@"

개별 account.ilf 파일은 사용 유효 기간이 있습니다. 유효기간을 지난 경우, account.ilf: not in valid datetime-range 와 같은 로그가 나옵니다. 시험 라이센스를 사용하는 경우 필요로 하는 기간을 iFun Engine support 로 메일 보내주세요. 정식 라이센스인 경우 iFunFactory 에서 새 라이센스 파일을 만료 이전에 전달해 드립니다.

49.3.4. “Error: Your system time is not correct” 라는 메시지를 내면서 죽을 때

 ubuntu@vm:~/example-build/debug $ ./example-local
 I0218 23:07:23.996897 22494 main.cc:145] Crashreporter initialized; .dmp will be written to /home/ubuntu/example-build/debug/logs/../dumps
 E0218 23:07:25.630452 22494 capability.cc:434] Error response; ec=0; status=400
 E0218 23:07:25.631985 22494 capability.cc:439] Error: Your system time is not correct
 E0218 23:07:25.632563 22494 capability.cc:70] Failed to get response from license server
 ./example-local: line 51: 22494 Killed                  $FUNAPI_BIN_DIR/funapi_runner --main_program_name=$component_name --framework_manifest_path="$manifests" --main_enabled_components=$ComponentName --resource_root="/home/ubuntu/example-build/debug/resources" --max_log_size=10 --stop_logging_if_full_disk --log_root_dir="$FUNAPI_LOG_ROOT_DIR" --crashdump_root_dir="$FUNAPI_DUMP_ROOT_DIR" --alsologtostderr "$@"

위의 로그처럼 Error: Your system time is not correct 와 같은 메시지가 나오는 경우 서버 시간이 부정확한 상태입니다. 이 경우, 라이센스 서버와 정상적으로 통신할 수 없습니다.

$ sudo ntpdate -u ntp.ubuntu.com

등의 명령으로 서버 시간을 다시 맞춰주세요.