【Linux】WebFOCUSの関連サービスを自動起動にできますか?
WebFOCUSバージョン |
9.0.3 |
Linuxサーバーを再起動するとWebFOCUSの関連サービスが止まっちゃう!
どうにか自動起動にする方法はないかな、、
Resource Analyzerでは、アーカイブ前のデータおよびリポジトリデータベースで蓄積したログデータを検索するためのビジネスビューが用意されています。
概要
本記事ではLinux環境におけるWebFOCUS関連サービスの自動起動にするためのサンプルファイルと設定方法を記述します。
サンプルファイル
サンプルは以下です。
※アップロードの都合上、ダウンロードファイルは tools.tar.zip になっています。
zip を解凍することで、tools.tar.gz を取得することができます。
▼格納ファイル
- logs フォルダ
- webfocus.service
- wf_ctrl.sh
- wfmain
検証環境
本記事では下記の環境で検証を行っています。
- WebFOCUS:version9.0.3
- WebFOCUS Client Gen 8
- Reporting Server Gen 2363
- OS:Red Hat Enterprise Linux 8.4
前提
- systemd を使用した自動起動設定のため、Red Hat 系OS の バージョン7 以上でしか利用できません
- 使用するアプリケーションサーバはWebFOCUS 付属のTomcat であることを前提にシェルスクリプトを作成しています
- Web サーバ側のサービス制御は行っておりません
- 本記事に添付するtools はサンプルのため、お客様にて環境に合わせて値を修正の上、検証をお願いいたします
設定手順
ファイルの配置と各種値変更 ※以下作業はWebFOCUSのインストールユーザーで作業
- ファイルの配置
- 自動起動用のサンプル(tools.tar.gz)をibiディレクトリと同一ディレクトリに配置して展開します。
【例】
WebFOCUSインストールディレクトリが[/home/webfocus/ibi]の場合は、[/home/webfocus/]に配置
- 自動起動用のサンプル(tools.tar.gz)をibiディレクトリと同一ディレクトリに配置して展開します。
- 配置した資材のパーミッションの変更
- 配置した[webfocus.service]と[wf_ctrl.sh]に対して実行権限を付与します。
【例】
chmod +x webfocus.service wf_ctrl.sh
- 配置した[webfocus.service]と[wf_ctrl.sh]に対して実行権限を付与します。
- [wf_ctrl.sh]の編集
- WebFOCUSをインストールしたユーザーが webfocus 以外の場合は、下記値を変更します。
<wf_ctrl.shの4行目>
WF_USER=webfocus - 保有ライセンス、及び、導入環境に応じて、wf_ctrl.sh にて制御するWebFOCUSのコンポーネントを指定します。
<wf_ctrl.shの26行~29行目>
DERBY_STARTUP=0 ※1
TOMCAT_STARTUP=1
CASTER_STARTUP=1 ※2
SOLR_STARTUP=1
0: 制御しない 1: 制御する
※1:WebFOCUSのリポジトリデータベースとしてWebFOCUSにバンドルされているApache Derby を利用している場合は、[DERBY_STARTUP]の値を1 に変更してください
※2:保有ライセンスにWebFOCUSのレポート配信機能(Report Caster)が含まれていない場合は[CASTER_STARTUP]の値を 0 に変更してください - サービス停止処理を実行した際のプロセス強制停止までのタイムアウト時間を変更する場合は、下記の値を変更してください
<wf_ctrl.shの30行目>
MAX_CNT=60
※値は 秒単位 です
- WebFOCUSをインストールしたユーザーが webfocus 以外の場合は、下記値を変更します。
- [webfocus.service]の編集
- WebFOCUSサービス起動・停止コマンドの実行ユーザーが webfocus 以外の場合は、下記各値を変更します
<webfocus.servicesの6行目>
User=webfocus - [wf_ctrl.sh] を [/home/webfocus/tools] 以外へ配置した場合は、下記の値を変更します。
<webfocus.servicesの7~8、10行目>
ExecStart=/home/webfocus/tools/wf_ctrl.sh start
ExecStop=/home/webfocus/tools/wf_ctrl.sh stop
PIDFile=/home/webfocus/tools/logs/wfmain.pid
※[/home/webfocus]を資材を配置したディレクトリへ変更してください
- WebFOCUSサービス起動・停止コマンドの実行ユーザーが webfocus 以外の場合は、下記各値を変更します
OSサービス関連の設定
※以下作業は特権ユーザーで実行してください
- webfocus.service を下記のように[/etc/systemd/system/]配下へコピーします。
【例】
cp -p /home/webfocus/tools/webfocus.service /etc/systemd/system/webfocus.service - 下記にてサービスの自動起動設定を有効化します。
systemctl enable webfocus
※自動起動設定が行われているかを下記にて確認可能です。
systemctl is-enabled webfocus - 以下の各種コマンドにて動作確認を実施してください。
起動 :systemctl start webfocus
停止 :systemctl stop webfocus
再起動 :systemctl restart webfocus
ステータス確認:systemctl status webfocus
補足
OS側での自動起動ではなく、手動で各種サービスを起動・停止したい場合は、手順4-2は割愛してください。 手動での確認方法は下記の通りです。
<サービス全体>
WebFOCUSサービス全体を起動 :wf_ctrl.sh start
WebFOCUSサービス全体を停止 :wf_ctrl.sh stop
WebFOCUSサービス全体の状態確認:wf_ctrl.sh status
WebFOCUSサービス全体の再起動 :wf_ctrl.sh restart
<edastartのみ>
起動 :/home/webfocus/tools/wf_ctrl.sh start eda
停止 :/home/webfocus/tools/wf_ctrl.sh stop eda
ステータス確認:/home/webfocus/tools/wf_ctrl.sh status eda
再起動 :/home/webfocus/tools/wf_ctrl.sh restart eda
<derbyのみ>
起動 :/home/webfocus/tools/wf_ctrl.sh start derby
停止 :/home/webfocus/tools/wf_ctrl.sh stop derby
ステータス確認:/home/webfocus/tools/wf_ctrl.sh status derby
再起動 :/home/webfocus/tools/wf_ctrl.sh restart derby
<tomcatのみ>
起動 :/home/webfocus/tools/wf_ctrl.sh start tomcat
停止 :/home/webfocus/tools/wf_ctrl.sh stop tomcat
ステータス確認:/home/webfocus/tools/wf_ctrl.sh status tomcat
再起動 :/home/webfocus/tools/wf_ctrl.sh restart tomcat
<ReportCasterのみ>
起動 :/home/webfocus/tools/wf_ctrl.sh start caster
停止 :/home/webfocus/tools/wf_ctrl.sh stop caster
ステータス確認:/home/webfocus/tools/wf_ctrl.sh status caster
再起動 :/home/webfocus/tools/wf_ctrl.sh restart caster
【wf_ctrl.shの仕様】
処理 | 仕様 |
---|---|
プロファイル | $WF_HOMEの.bash_profileを読み込む |
実行ユーザチェック | wf_ctrl.sh:$WF_USERのユーザID以外は実行不可 |
ログファイルサイズ | wf_ctrl.sh実行時、[LOGLIMIT]に指定したサイズ以上の場合はwf_ctrl.log.oldへ退避 |
プロセスチェック (derby) | derby.system.homeを$IBI_HOME/derbyとして起動されているプロセス0以外、 かつ、[DERBY_PORT] のポートがLISTENとなっている場合は正常 |
プロセスチェック (edastart) | edap*、tscom3.out、jscom3c.out、fds.outのプロセスチェックとedastartの実行結果をチェック |
プロセスチェック (tomcat) | $TOMCAT_HOMEを含むプロセスが0以外の場合は正常 |
プロセスチェック (caster) | $CASTER_HOMEを含むプロセスが0以外の場合は正常 |
プロセス停止 (derby) | stop.sh実行後、待機秒経過した場合は、該当プロセスのソフトKILLを実行。 ソフトKILLがきかない場合はハードKILLを実行 |
プロセス停止 (edastart) | edastart⇒killall,stop,clear実行後、待機秒経過した場合は、該当プロセスのソフトKILLを実行。 ソフトKILLがきかない場合はハードKILLを実行。 |
プロセス停止 (tomcat) | shutdown.sh実行後、待機秒経過した場合は、該当プロセスのソフトKILLを実行。 ソフトKILLがきかない場合はハードKILLを実行 |
プロセス停止 (caster) | shutdown.sh実行後、待機秒経過した場合は、該当プロセスのソフトKILLを実行。 ソフトKILLがきかない場合はハードKILLを実行 |
多重起動 | プロセスが既に起動している場合は起動をスキップ |
戻り値 | 正常:0 (実行する処理がすべて正常終了した場合) 異常:1 (1つでもエラーが出た場合) |
【systemd連携】
wf_ctrl.shでの制御とsystemctlでの制御は連動しないためwf_ctrl.shからプロセス制御を実行した場合、プロセスが停止した認識となってしまうため、systemd制御用のダミープロセス(wfmain)を起動する仕様となっています。
wfmainの起動停止はsystemdと連携することによって、systemctlと連動します。
【免責事項】
株式会社アシストは、本書の記載事項に関していかなる保証もいたしません。
また、本書の記載内容に起因する問題についても責任を負いかねます。
▼本資料の内容について
本資料に記載の技術情報およびプログラムは、本書に記載されている前提に基づき、初期動作のみ確認をしております。
システム環境の設定変更や導入製品のバージョンアップを実施した場合などは考慮されていません。
初期動作確認後、システム環境変更後の動作については、保証いたしませんので、ご了承ください。
▼プログラム改変について
プログラムの改変は自由に実施していただいて問題ありません。新規要件やバグ修正などが発生した場合には、お客様の責任範囲内での修正を実施いただくようお願いします。
▼サポートについて
本資料に記載している各種サンプル設定ファイル内容に関するご質問や、JavaScript,CSS,HTMLなどお客様にて作成のプログラムに関するお問い合わせは、弊社サポートセンターで受け付けることができません。WebFOCUSの動作に関するお問い合わせに限らせていただきます。
Linux環境でもWebFOCUSの関連サービスは自動起動できるんだね!
メンテナンスなどでサーバーを再起動する際に、WebFOCUSのサービスも自動であがって問題なさそうであれば実装してみよう!!