コンフィグレーションガイド Vol.1


19.4.4 スクリプト起動契機の取得

ここでは,eventmonitorモジュールのget_exec_trigger()関数を使用して,動作中のスクリプトから,自身が起動した要因(イベント起動スクリプトの場合は発生イベント)を取得する方法を説明します。

〈この項の構成〉

(1) スクリプトファイルの例

イベント起動スクリプトの起動要因(発生イベント)を取得するスクリプトファイルの例を次に示します。

図19‒30 スクリプトファイル記載例
import sys
import extlib.eventmonitor                                            …1
dict = extlib.eventmonitor.get_exec_trigger ()                        …2
 
if dict['type'] == extlib.eventmonitor.APPLET :                       …3
# アプレット
    if dict['applet']['type'] == extlib.eventmonitor.TIMER_EVT :      …4
    # タイマイベント
        
        if dict['applet']['condition'][extlib.eventmonitor.TIMER_TYPE] == \
            extlib.eventmonitor.CRON :
        # cronタイマ
        
            # cron監視条件の文字列を表示
            print("[condition]",file=sys.stderr)
            print(dict['applet']['condition'][extlib.eventmonitor.CRON],file=sys.stderr)
        
        elif dict['applet']['condition'][extlib.eventmonitor.TIMER_TYPE] == \
            extlib.eventmonitor.INTERVAL :
        # intervalタイマ
        
            # interval監視条件の文字列を表示
            print("[condition]",file=sys.stderr)
            print(dict['applet']['condition'][extlib.eventmonitor.INTERVAL],
                file=sys.stderr)
        
    elif dict['applet']['type'] == extlib.eventmonitor.SYSMSG_EVT :   …5
    # 運用メッセージイベント
        
        ## 運用メッセージ監視条件の表示
        print("[condition]",file=sys.stderr)
        ## イベントレベル
        print("SYSMSG_EVENT_LEVEL:" + str(dict['applet']['condition']
            [extlib.eventmonitor.SYSMSG_EVENT_LEVEL]),file=sys.stderr)
        
        ## イベント発生要因の運用メッセージを表示
        print("[trigger system message]",file=sys.stderr)
        ## 発生時刻
        print("SYSMSG_TIME:" + dict['applet']['trigger']
            [extlib.eventmonitor.SYSMSG_TIME],file=sys.stderr)
        ## メッセージ識別子
        print("SYSMSG_MSG_ID:" + str(hex(dict['applet']['trigger']
            [extlib.eventmonitor.SYSMSG_MSG_ID])),file=sys.stderr)
 
sys.exit()
  1. モジュールをインポートします。

  2. 起動要因(発生イベント)を取得する関数を呼び出します。

  3. スクリプトの起動要因がアプレット機能(イベント起動スクリプト)かどうか判定します。

  4. 起動要因がタイマ監視の場合の監視条件を取得します。

  5. 起動要因が運用メッセージ監視の場合の監視条件,および起動要因となった運用メッセージの情報を取得します。