各スクリプトの実行権限は、ユーザが root、グループが root です。
Startスクリプト、Stopスクリプト、およびCheckスクリプトでは、サーバ毎の設定 (”/etc/profile”等)である環境変数の値が受継がれることを保証していません。このため、これらのスクリプトで使用する環境変数は各スクリプトの中で定義してください。
Check スクリプトは RMS 起動後、定周期(10 秒間隔)に呼出され、Start/Stop スクリプトとは同期しません。
このため、Check スクリプトが起動された時点では、Start スクリプト処理が完了していない場合や、Stop スクリプトが処理中の場合があります。
Start スクリプト完了前に Check スクリプトが起動された場合、終了コード Offline 状態を返すようにスクリプトを作成してください。
各スクリプトを登録する場合、スクリプトの動作確認は必ず実施してください。
作成したスクリプトが正しく動作しない場合、userApplication の起動に失敗したり、切替えに失敗することがあります。
Cmdline リソースは作成者が管理するものです。このため、動作異常についても作成者の責任で調査・修正・動作確認を行う必要があります。
動作異常時の調査を速やかに実施するために、ログを出力するなどの対応を行ってください。
Stop スクリプトは、リソース故障発生時にも実行されます。
Cmdline リソースは、標準出力/標準エラー出力が、以下のログに格納されるよう、Start/Stop スクリプトを起動します。
/var/opt/SMAWRrms/log/"ユーザアプリケーション名".log
"ユーザアプリケーション名" は Cmdline リソースを登録したユーザアプリケーション名です。Start/Stop スクリプトが正常に動作しない場合、本ファイル内のメッセージ出力から原因を調査できます。
Cmdline リソースに登録した Start スクリプトから常駐プロセスを起動すると、常駐プロセスにはStart スクリプトのファイルディスクリプタが引き継がれます。そのため、常駐プロセスから標準出力や標準エラー出力にメッセージを出力する場合、そのメッセージは "ユーザアプリケーション名".log ファイルに格納されます。しかし、このファイルは、リソースの Start/Stop スクリプトが出力するメッセージを取得することを目的としており、常駐プロセスが常に出力するメッセージを取得することを想定していません。常駐プロセスが常にメッセージを出力し続けると、"ユーザアプリケーション名".log ファイルがディスク領域を圧迫する可能性があります。
このような常駐プロセスを持つ業務アプリケーションを Cmdline リソースから起動する場合は、以下のいずれかの対処を行ってください。
常駐プロセスが標準出力/標準エラー出力へメッセージを出力しないよう、業務アプリケーションの設定を変更する。
常駐プロセスの起動直後に、Start スクリプトから引き継いだ標準出力/標準エラー出力のファイルディスクリプタを CLOSE するよう、常駐プロセスの処理を修正する。
ポイント
常駐プロセスは、標準出力/標準エラー出力以外のファイルディスクリプタも Start スクリプトから引き継いで起動されますが、それらのファイルディスクリプタはすべて CLOSE して問題ありません。
Start スクリプト内で、常駐プロセスが出力するメッセージを /dev/null または別のファイルへリダイレクトする。
例
Start コマンド StartCommand.sh で常駐プロセスが起動される場合、Start コマンドを以下のように登録します。
出力されるメッセージが運用上不要な場合(メッセージを /dev/null へ破棄する)
/usr/local/bin/StartCommand.sh > /dev/null 2>&1
出力されるメッセージが運用上必要であり、ログファイル /var/tmp/logfile に出力する場合
/usr/local/bin/StartCommand.sh > /var/tmp/logfile 2>&1
注意
常駐プロセスが出力するメッセージを別のログファイルへリダイレクトする場合、ログファイルによりディスク領域が圧迫されることを避けるため、ログファイルを定期的に削除する必要があります。常駐プロセス動作中にログファイルを削除することはできないため、以下のように /dev/null をログファイルへコピーすることで、ログファイルのサイズを 0 にします。
cp /dev/null /var/tmp/logfile
cron から定期的にログファイルのサイズを 0 にすることで、ログファイルによるディスク領域の圧迫を避けた運用が可能です。