お客様専用ページ > お客様専用FAQ
【OS X Yosemite(10.10) 以降の FLEXlmライセンスマネージャの自動起動】 OS X 10.10 Yosemite 以降において、従来使用されてきた「ブート時のプログラムデーモンの自動起動の設定方法」が使用出来なくなりました。その方法とは、/Library/Startupitems 配下に、プログラムを起動するためのスクリプト等をセットして行う方法でしたが、Yosemite 以降、この方法での自動起動ができなくなりました。それに代わり、これも以前の OS X バージョンから提供されていた方法ですが、launchd(8) (launchctl,launchd.plist) を使用する方法が正式に採用されています。
これに伴い、Yosemite 以降のバージョンでは、PGIのライセンスマネージャである FLEXlm の lmgrd デーモンの自動起動するための設定も変更する必要があります。(OS X 10.9 Mavericks 以前のバージョンでは、このページに説明している変更は必要ありません。インストールの方法を説明している従来の設定の方法で問題ありません)。ここでは、lmgrd デーモンの自動起動のための新しい launchd(8) の仕組みを利用する方法を説明します。なお、この説明は、ノードロック形式の PGI Workstation for OS X 製品のライセンスマネージャに対して適用するものです。
2016年11月更新 2015年8月初稿
© 株式会社ソフテック
一度、以下の設定が済んでいるシステム上でバージョンアップする場合は、すでに、上記1~4までの設定は過去に行われているはずですが、下記の 3 の手続き(/opt/pgi/PGI のファイルの内容変更)だけは必ず行ってください。新しいバージョン(リビジョン)をインストールする度に、/opt/pgi/PGI ファイルは上書きされます。従って、バージョンアップの場合は /opt/pgi/PGI ファイルの修正だけは必要です。その後、ライセンスマネージャを「手動」で停止、あるいは起動を行い動作の確認を行ってください。
Yosemite 以降の OS X において、初めて lmgrd デーモンの自動起動するための設定では、以下の操作、変更等を行います(ルート権限で操作する必要があります)。
【重要】
OS X 10.9 Mavericks 以前のシステムで PGI コンパイラを使用していた方が、OS X Yosemite(10.10) 以降にシステム・アップグレードした場合の注意です。
過去に、設定していた/Library/Startupitems 配下の PGI ライセンスデーモンを自動起動するためのスクリプトを「削除」してから以下の作業を行ってください。削除する directoryとfile は以下のものです。
ルート権限による以下の directory を削除してください。
$ sudo rm -rf /Library/Startupitems/PGI
ターミナルを開きます。root 権限(sudo) に移行してください。その後、/Library/LaunchDaemons/ ディレクトリまで移動してください。この配下に、com.pgi.flexlm.launcher.plist と言うファイルを作成します。この配下に作成されるファイルの所有者は、デフォルトで root で、グループは wheel となります。
$ sudo -s Password: bash-3.2# cd /Library/LaunchDaemons/ bash-3.2# pwd /Library/LaunchDaemons bash-3.2# ls -l total 24 -rw------- 1 root wheel 485 Feb 10 2015 com.nvidia.cuda.launcher.plist (この行は一例です)
com.pgi.flexlm.launcher.plist の内容は、以下の通りです。任意のエディターを開いて、この内容を貼り付けて、com.pgi.flexlm.launcher.plist ファイルを作成して下さい。
Label com.pgi.flexlm.launcher ProgramArguments /opt/pgi/PGI start RunAtLoad
com.pgi.flexlm.launcher.plist ファイルのオーナー属性/ファイルパーミッションを念のため、明示的に変更します。
bash-3.2# pwd /Library/LaunchDaemons bash-3.2# chown root:wheel com.pgi.flexlm.launcher.plist bash-3.2# chmod 600 com.pgi.flexlm.launcher.plist bash-3.2# ls -l total 24 -rw------- 1 root wheel 485 Feb 10 2015 com.nvidia.cuda.launcher.plist -rw------- 1 root wheel 417 Aug 26 18:38 com.pgi.flexlm.launcher.plist
以下の操作も、root 権限(sudo) で行います。PGIコンパイラ・ソフトウェアが実装されている /opt/pgi 配下にある ライセンスマネージャの動作ログファイルである license.log のファイルパーミションを変更します。初めて PGI コンパイラをインストールした段階では、このファイルが存在しないため、touch コマンドで作成します。その後、以下のように chmod コマンドで「パーミション」を変更します。
bash-3.2# cd /opt/pgi
bash-3.2# pwd
/opt/pgi
bash-3.2# touch license.log (もし、license.log が存在しない場合は、touch で作成する)
bash-3.2# ls -l
total 352
-rw-r--r-- 1 root wheel 34192 Jul 10 05:05 INSTALL.rtf
-rwxr-xr-x 1 root wheel 719 Aug 27 10:57 PGI
-rw-r--r--@ 1 root wheel 1209 Aug 24 17:46 PGI2015.terminal
-rwxr-xr-x 1 root wheel 101 Aug 25 18:25 StartupParameters.plist
-rw-r--r-- 1 root wheel 912 Aug 24 17:46 environment.plist
-rw-r--r-- 1 root wheel 1390 Aug 24 17:45 license.dat
-rw-r--r-- 1 root wheel 0 Aug 27 18:34 license.log
drwxrwxr-x 7 root wheel 238 Aug 24 17:46 osx86
drwxrwxr-x 7 root wheel 238 Aug 24 17:46 osx86-64
drwxr-xr-x 3 root wheel 102 Aug 24 17:46 pgdbg32.app
drwxr-xr-x 3 root wheel 102 Aug 24 17:46 pgdbg64.app
drwxr-xr-x 3 root wheel 102 Aug 24 17:46 pgprof.app
bash-3.2# chmod 777 license.log (license.log ファイルの全ての書き込みパーミションを許す)
bash-3.2# ls -l license.log
-rwxrwxrwx 1 root wheel 0 Aug 27 18:34 license.log
引き続き、/opt/pgi 配下の "PGI" と言うファイルを操作します。まず、最初に、OS X 上のご自身のユーザネームを確認してください。これは、sudo で root ユーザになる前のご自身のユーザネームを意味します。一度、root 権限セッションから exit して、whoami コマンドで確かめます。このユーザネームを "PGI" ファイルの中で使用します。
bash-3.2# exit (root から抜ける) Mac-mini:~ kato$ whoami kato (これがユーザ名、一例です)
再度、root 権限で、/opt/pgi/PGI ファイルをエディターで開きます。ファイル内の記述の中で、以下の部分を変更します。
StartService() { $BIN_DIR/lmgrd -c $LICENSE_DIR/license.dat -l $LOG_DIR/license.log }
上記を以下のように変更して下さい。$BIN_DIRから始まる行を下に1行コピーして、このオリジナル行を # を使ってコメント化します。次に、コピーした行の先頭に、「su ユーザネーム -c」を付け加えます。ここの例では、ユーザネームが kato ですので、su kato -c と言う記述になります。それに続く、$BIN_DIR/.... の部分をダブルクォーテーション(" .... ") で囲みます。なお、シングルクォーテーションは使わないで下さい。
StartService() { # $BIN_DIR/lmgrd -c $LICENSE_DIR/license.dat -l $LOG_DIR/license.log この行を#でコメント化する su kato -c "$BIN_DIR/lmgrd -c $LICENSE_DIR/license.dat -l $LOG_DIR/license.log" }
変更した "PGI" ファイル内容(全部)を以下に記します。(以下は、PGI 15.7 に付属している"PGI" ファイルです。)以下の記述の中にある BIN_DIR=$PGI/osx86/15.7/bin 行の 15.7 を現在インストールしているリビジョン番号になっているはずです。この番号を変えると他のリビジョンでも使用できます。
#!/bin/bash # Copy to /Library/StartupItems/PGI directory # chmod 0755 PGI . /etc/rc.common # PGI directory PGI=/opt/pgi # license, bin and log directories LICENSE_DIR=$PGI BIN_DIR=$PGI/osx86/15.7/bin LOG_DIR=$PGI StartService() { # $BIN_DIR/lmgrd -c $LICENSE_DIR/license.dat -l $LOG_DIR/license.log su kato -c "$BIN_DIR/lmgrd -c $LICENSE_DIR/license.dat -l $LOG_DIR/license.log" } StopService() { $BIN_DIR/lmutil lmdown -q -c $LICENSE_DIR/license.dat } RestartService() { StopService StartService } RunService "$1"
launchd(8) 管理下では、デーモン起動用の plist ファイルをロードしておくことにより、システムブート時に、デーモン起動用のスクリプトファイル(プログラム)が動作します。以下のコマンドで、PGI lmgrd デーモン起動用の plist ファイルをロードします。これは、root 権限での操作が必要です。以下のコマンドは一度行っておけば、次回以降のブート時には行う必要はありません。(以下の launchctl load コマンドは、FLEXlm ライセンスマネージャのデーモンも起動してくれますので、ここでの明示的な「手動起動」は必要ありません)
Mac-mini:~ kato$ sudo launchctl load /Library/LaunchDaemons/com.pgi.flexlm.launcher.plist Password: これにて、ファイルがロードされ、引き続き、lmgrd デーモン起動用のスクリプトが実行される。 その後、以下のコマンドで、lmgrd プロセスと pgroupd プロセスの二つが動作していることを確認する。 Mac-mini:~ kato$ ps ax | grep lmgrd 583 ?? S 0:00.00 /opt/pgi/osx86/15.7/bin/lmgrd -c /opt/pgi/license.dat -l /opt/pgi/license.log 584 ?? Ss 0:00.04 pgroupd -T localhost 11.10 5 -c /opt/pgi/license.dat --lmgrd_start 55dfcea4 586 s005 S+ 0:00.00 grep lmgrd
以上の操作により、システムブート時に、FLEXlm ライセンスマネージャ(lmgrd) を自動で起動するための設定が可能となります。もし、コンパイラ使用時にライセンスマネージャの問題が現れた場合は、/opt/pgi/license.log ファイルを確認して、その原因を探す必要があります。この関連情報として、「OS X 上のライセンスマネージャの動作に関する不具合」をご覧ください。
明示的にPGIライセンスマネージャを手動で起動、あるいは、停止する方法を説明します。なお、FLEXlmライセンスマネージャ(lmgrdとpgroupd) のプロセスを確かめる方法は、以下のコマンドで行います。以下の例では、Process ID 640 が lmgrd デーモンプロセス、Process ID 641 が pgroupd デーモンプロセス(PGI用デーモン)です。
Mac-mini:~ kato$ ps ax | grep lmgrd 640 ?? S 0:00.00 /opt/pgi/osx86/15.7/bin/lmgrd -c /opt/pgi/license.dat -l /opt/pgi/license.log 641 ?? Ss 0:00.04 pgroupd -T localhost 11.10 5 -c /opt/pgi/license.dat --lmgrd_start 55dfe88f 643 s005 S+ 0:00.00 grep lmgrd
FLEXlmライセンスマネージャ(lmgrdとpgroupd) を明示的に停止するには、以下のコマンドを実行してください。これは、root 権限を必要としません。
Mac-mini:pgi kato$ /opt/pgi/PGI stop lmutil - Copyright (c) 1989-2011 Flexera Software, Inc. All Rights Reserved. Port@Host Vendors 1) 27000@localhost pgroupd 1 FLEXnet License Server shut down
FLEXlmライセンスマネージャ(lmgrdとpgroupd) を手動で起動するには、以下のコマンドを実行してください。これは、root 権限を必要とします。
Mac-mini:pgi kato$ sudo /opt/pgi/PGI start Password: