お客様専用ページ > お客様専用FAQ

LICENSE MANAGER PROBLEMが出てコンパイラが使えない

【Linux の FLEXlmライセンスマネージャ】 Linux 上で、FLEXlmライセンスマネージャの問題で、コンパイラ・コマンドが使えない場合の原因の調べ方と対処法
2013年1月初稿
© 株式会社ソフテック

Question(症状)コンパイラ・コマンドを実行すると、以下のようなメッセージが出る。
エラーメッセージ
pgi-cc-lin64: LICENSE MANAGER PROBLEM: Failed to checkout license
pgi-cc-lin64: LICENSE MANAGER PROBLEM: Failed to checkout license
pgi-cc-lin64: LICENSE MANAGER PROBLEM: Failed to checkout license
pgi-cc-lin64: LICENSE MANAGER PROBLEM: Failed to checkout license
pgi-cc-lin64: LICENSE MANAGER PROBLEM: Cannot connect to license server system.
The license server manager (lmgrd) has not been started yet,
the wrong port@host or license file is being used, or the
port or hostname in the license file has been changed.
(中略)
FLEXnet Licensing error:-15,570. System Error: 115 "Operation now in progress"
For further information, refer to the FLEXnet Licensing documentation,

Answer

この問題は、FLEXlmライセンスマネージャのプログラムである lmgrd プロセスが正常に起動していないための問題です。この原因としては、

  • (1) lmgrd ソフトウェアがインストールされていない
  • (2) Linux の LSB モジュールが実装されていないため lmgrd が動作しない
  • (3) Linux システムのシステム設定上に何らかの問題が隠れている

と言ったことが想定されます。この主な原因としては、(3) の Linux のホスト名等の定義に係わる問題のことが多いですが、順番に当該問題の確認方法を説明します。 まず、「(1) lmgrdがインストールされたていない」ことに関しては、PGIコンパイラをインストールする際に実装されますので、この原因に因ることはほとんどありません。ちなみに、lmgrd の実行バイナリの存在場所を以下に記します。お確かめ下さい。

[photon29 bin]$ pwd          (場所)
/opt/pgi/linux86-64/{バージョン番号}/bin

[photon29 bin]$ ls lmgrd*  (ファイル)
lmgrd*  lmgrd.rc*
[kato@photon29 bin]$ ls pgroupd
pgroupd*

上記の lmgrd と pgroupd と言う二つのファイルが、ライセンスマネージャのデーモン用のファイルです。これらが存在していることを確認してください。

次に、「(2) Linux の LSB モジュールが実装されていないため lmgrd が動作しない」に関して、確認します。以下の lsb_release コマンドを実行してください。lsb_release コマンド自体がない場合は、Linux LSBモジュール自体が実装されていない可能性があります。以下の例は、SUSE Linux の例です。 core-3.0 以上が表示されれば、これが原因となった問題ではありません。

kato@photon0:~> lsb_release
LSB Version:    core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:
core-4.0-x86_64:desktop-4.0-amd64:desktop-4.0-noarch:graphics-2.0-amd64:graphics-2.0-noarch:
graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch

もし、LSB モジュールが実装されていない場合は、FAQ(Ubuntu関連SUSE 関連RedHat(CentOS,Scientific Linux,Fedora)関連 )をご覧いただき、実装してください。

次に、ほとんどの場合、「(3) Linux システムのシステム設定上の問題」である可能性が高く、その確認ポイントに関して説明しますが、問題の本質を探るために、いくつかの確認して頂く項目を説明します。

  • (1) ライセンスマネージャの起動スクリプトの確認

     /etc/init.d/lmgrd (あるいは、/etc/init.d/lmgrd-pgi) がこの起動スクリプトです。
     これは、/opt/pgi/linux86-64/{バージョン番号}/bin/lmgrd.rc の内容をコピーしたものとなっているはずです。この確認をお願いします。

  • (2) ライセンスマネージャのログ

     今回のエラーのそもそもの原因は、以下のファイルに記録されています。
     /opt/pgi/flexlm.log
     この中の記録されている事象で、lmgrd を起動しようとしたとき、何らかの原因で 起動できなかった理由を示すイベントが記録されているはずです。これは、原因を探る確認事項として一応見ておいた方が良いです。

さて、これからが本論ですが、こうした問題のほとんどが /etc/hosts テーブルの設定不備にあります。この辺りを確認すれば、ほとんどの場合、問題が解決するはずです。

● /opt/pgi/license.dat の1行目の確認

以下は、私のマシンの例です。

[kato@photon29 bin]$ cat /opt/pgi/license.dat
SERVER photon29 90e6ba7ccdf1 27000
DAEMON pgroupd
(snip)

1行目の SERVER行の「photon29」と言うのが、このマシンのホスト名です。この名前が、以下のコマンド hostname の
出力結果と一致することを確認して下さい。あるいは、Linux のインストールをデフォルトで行い、
ホスト名をデフォルト名にした場合、localhost (localhost.localdomain) となっているかもしれません。
license.datのこのホスト名の定義が、以下で述べる内容に沿ったものでなければ、このホスト名の部分は、
任意に修正できる部分ですので、適切なホスト名に変更してください。これで、ほとんどの問題は解消されるはずです。

[kato@photon29 bin]$ hostname
photon29

あるいは、以下のように出力されるかもしれません。(Linux上でホストファイル設定していない場合)
[kato@photon29 bin]$ hostname
localhost.localdomain


次に、上記の license.dat の1行目の 90e6ba7ccdf1 と言う文字列(私のマシンの例)は eth0 インタフェースの
MAC address と同じでなければなりません。ルート権限で、ifconfig コマンドを実行して下さい。

[kato@photon29 bin]$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 90:E6:BA:7C:CD:F1   
          inet addr:192.168.0.29  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::92e6:baff:fe7c:cdf1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:960 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1019 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:159020 (155.2 KiB)  TX bytes:96546 (94.2 KiB)
          Interrupt:54 Base address:0xe000

上記の出力の「HWaddr」が MAC address ですので、コロン文字を除いた文字列が一致していることが必要です。
また、 eth0 のインターフェースであることが必要です。
そもそも、eth0 が存在しない場合は、lmgrd は起動しませんのでご注意下さい。

ここまで問題が無かった場合は、後は /etc/hosts の定義の問題となります。

● /etc/hosts の確認事項

ローカルループ 127.0.0.1 の記述が存在すること。この 127.0.0.1 行が存在しなければ lmgrd が起動しませんので
注意してください。また、当該ホストのホスト名と IP アドレスの定義が存在すること。これは、あくまでも
システムに対して「静的 IP アドレス」を付与した環境の場合の表示例です。

127.0.0.1   localhost.localdomain   localhost (IPV4 用のこの記述は必ず存在する)
# special IPv6 addresses
::1         localhost ipv6-localhost ipv6-loopback
.....
192.168.0.29    photon29

license.dat の1行目の photon29 のホスト名に対する IPアドレスの定義があること。
このアドレス 192.168.0.29 が ifconfig eth0 コマンドでの出力、inet addr:192.168.0.29 に一致している
ことが必要です。以上、全て私のマシンの場合の一例です。

-------------------------

eth0 等の ethernet ポートが物理的に存在していても、あえて、ご自身が明示的にホスト名を
定義していない場合は、以下のように 127.0.0.1 行のシステムのデフォルト記述で
終わっているかもしれません。また、DHCPでIPアドレス等を動的に与えられるような構成の場合も同様です。

127.0.0.1   localhost.localdomain   localhost (IPV4 用のこの記述は必ず存在する)
# special IPv6 addresses
::1         localhost ipv6-localhost ipv6-loopback
.....(略)

こうした構成の場合は、/opt/pgi/license.dat の1行目の SERVER行の「ホスト名」の所に、
localhost.localdomain もしくは、localhost と定義することでも lmgrd ライセンスマネージャは
正常に動作します。/opt/pgi/license.datは、具体的には以下のように記述します。
(ライセンスキーの取得の際に必要な Hostid は、/opt/pgi/license.infoの中に記述されていますが、
こうした場合は、eth0 ポートの MAC アドレス情報を使用していますが、この辺は気にしないでください。)

$ cat /opt/pgi/license.dat
SERVER localhost 90e6ba7ccdf1 27000
DAEMON pgroupd
(snip)

このように、license.dat に記述するホスト名の部分は、上述のように明示的に定義したホスト名でも良いし、
127.0.0.1 のローカルループのホスト名のどちらでも良いと言うことになります。
以上のような確認を行うことで、Linux上の何らかの設定不備が見つかるかと思います。

以上の確認、ならびに修正後、念のため、システムのリブートを行ってください。 システムの再起動時に、FLEXlm ライセンスマネージャの自動起動の設定を行っているはずですので、問題が 解消されていれば正常にライセンスマネージャは起動しているはずです。

ちなみに、ライセンスマネージャを lmgrd を手動で起動する方法は以下の通りです。ルート権限で行います。

$ /etc/init.d/lmgrd start (あるいは、/etc/init.d/lmgrd-pgi start)

正常に動作すると、以下の ps コマンドで、3行の表示があるはずです。
これが1行とか2行の場合は、正常に起動していません。

[kato@photon29 bin]$ ps ax | grep lmgrd
 1910 ?        S      0:00 /usr/pgi/linux86-64/12.10/bin/lmgrd -c /usr/pgi/license.dat
 1911 ?        Ssl    0:00 pgroupd -T photon29 11.10 3 -c /usr/pgi/license.dat --lmgrd_start 50bd4ab9
 4995 pts/0    S+     0:00 grep lmgrd

これでも正常に起動しない場合は、/opt/pgi/flexlm.log の内容を見て下さい。この中に、問題となる直接の原因が記されているはずです。もし、原因が掴めない場合は、/opt/pgi/flexlm.logファイルを弊社まで送付いただきたいと思います。