お客様専用ページ > お客様専用FAQ
【Linux の FLEXlmライセンスマネージャ】 Linux 上で、FLEXlmライセンスマネージャの問題で、コンパイラ・コマンドが使えない場合の原因の調べ方と対処法
2013年1月初稿
© 株式会社ソフテック
(症状)コンパイラ・コマンドを実行すると、以下のようなメッセージが出る。
エラーメッセージ
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,
この問題は、FLEXlmライセンスマネージャのプログラムである lmgrd プロセスが正常に起動していないための問題です。この原因としては、
と言ったことが想定されます。この主な原因としては、(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 システムのシステム設定上の問題」である可能性が高く、その確認ポイントに関して説明しますが、問題の本質を探るために、いくつかの確認して頂く項目を説明します。
/etc/init.d/lmgrd (あるいは、/etc/init.d/lmgrd-pgi) がこの起動スクリプトです。
これは、/opt/pgi/linux86-64/{バージョン番号}/bin/lmgrd.rc の内容をコピーしたものとなっているはずです。この確認をお願いします。
今回のエラーのそもそもの原因は、以下のファイルに記録されています。
/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ファイルを弊社まで送付いただきたいと思います。