Hitachi

JP1 Version 12 JP1/File Transmission Server/FTP(UNIX(R)用)


3.3.1 自動起動プログラムを登録する

自動起動プログラムの登録の特長を次に示します。

自動起動プログラムの各設定項目を,次の表に示します。

表3‒3 自動起動プログラムの設定項目

項目

設定内容

ユーザ名

自動起動プログラムを登録するユーザ名を指定します。この項目は省略できません。

登録できるユーザは,次のユーザです。

  • JP1/FTPにログインできるユーザ(OSに登録してあるユーザ)

  • 「.default」(デフォルトユーザ)

    JP1/FTPにログインできるすべてのユーザ(OSに登録してあるユーザ)を対象にする。個々のユーザに該当する登録情報がないときは,デフォルトユーザの登録情報を参照し,該当する項目があれば,自動起動をする。

ファイル名/ディレクトリ名

((1〜256バイトの文字列))

自動起動の対象になるファイル名,またはディレクトリ名を指定します。

ファイル名を指定する場合は,フルパスまたはファイル名だけを指定します。ディレクトリ名を指定する場合は,フルパスを指定します。

ファイル名またはディレクトリ名の最後に"/"を入れた場合,最後の"/"に限り無効として削除します。

ファイル名またはディレクトリ名のパスは,シンボリックリンクを含むパスではなく,実パスを指定してください。

この項目は省略できません。

正常時に起動するプログラム名

異常時に起動するプログラム名

((2〜256バイトの文字列))

伝送の正常終了時,または異常終了時に,起動するプログラムを指定します。

起動するプログラム名は,フルパスで指定します。プログラムの起動時に,伝送情報を引数として渡せます。詳しくは,「引数キーワード」を参照してください。

JP1EVENTの指定について

旧バージョンでサポートしていた,プログラム名に「JP1EVENT」と指定してJP1イベントを発行することはできません。

JP1イベントを発行する場合は,JP1/Baseのコマンド「jevsend」をフルパスで指定して使用してください。

プログラム起動時の優先順位について

自動起動プログラムが複数登録されている場合,起動条件となる情報(ファイル名,ディレクトリ名)は同じで,起動するプログラムが異なるということがあります。その場合,次のような優先順位で検索し,最初の条件に合ったプログラムだけを起動します。優先順位を次の図に示します。

図3‒1 自動起動プログラム起動時の優先順位

[図データ]

[正常時/異常時に起動するプログラム名]の指定について

引数に「\」が含まれている場合,プログラムによっては,「\」をエスケープ記号と解釈することがありますので,注意してください。

引数キーワード

自動起動プログラムに,引数キーワードを指定して,ユーザプログラムに全伝送終了情報を渡せます。また,キーワードを指定することで,個別の伝送終了情報を渡すこともできます。キーワードの一覧を次の表に示します。

表3‒4 引数キーワード一覧

引数キーワード

キーワード出力内容

クライアント(発信)

サーバ(着信)

ALL

すべての項目を出力

TRNO

伝送番号

TCNO

接続番号

CARD

カード名

HOST

接続先ホスト名称またはIPアドレス

接続クライアントIPアドレス

PORT

接続先ホストポート番号

USER

ログインユーザ名

TRTP

伝送モード[ascii=1,binary=2]

TRCM

伝送コマンド[send=1,recv=2,append=3]

COMP

圧縮モード[stream=1,compress=2]

LCFN

ローカルファイル名

RMFN

リモートファイル名

STTM

伝送開始時間(time( )の戻り値)

SPTM

伝送終了時間(time( )の戻り値)

TRSZ

伝送データサイズ(バイト)

CMNT

コメント

TRST

伝送終了状態[成功=1,失敗=2]

ERKD

エラー種別[システムコールエラー=1,論理エラー=2,プロトコルエラー=3,強制終了エラー=4,SSL通信エラー=5]

SYCN

システムコール名称

ERNO

エラー番号

PLMG

プロトコルメッセージ

SSLE

SSL通信エラー番号

(凡例)

○:有効

−:無効

キーワードの指定について

上記表以外のものを指定した場合,または無効なキーを指定した場合は,指定したキーワードがユーザプログラムに直接渡されます。

引数指定例

ftsautomaコマンドで登録する場合に,引数を指定した例を次に示します。指定値は,「"(引用符)」で囲む必要があります。

指定例

"/users/keiri/PROC TRNO USER TRCM COMP TRSZ"

上記の指定をした場合,次の形式でユーザプログラムを実行します。

/users/keiri/PROC△12△keiri△1△2△30000(△:半角スペース)

  • 伝送の接続番号:12

  • ログインユーザ名:keiri

  • 伝送コマンド:send

  • 圧縮モード:圧縮

  • 伝送データサイズ:30,000バイト

プログラムの引数として情報を受け取れます。

標準入出力

標準入出力はクローズされます。なお,標準入出力をファイルに割り当てることができます。詳細については,「3.1.3 JP1/FTPの環境を環境変数で定義する」の「表3-2 環境変数一覧」に記載されている環境変数名JP1FTS_AUTO_STDIOを参照してください。

プロセスの環境

ログインしたユーザの.profileで設定される環境ではなく,JP1/FTPデーモンの環境となります。

複数ファイル伝送時のプログラム起動方法

ワイルドカードを使用した複数ファイル伝送を行った場合,ファイル伝送の数だけ自動起動プログラムが起動します。自動起動プログラムに引き継ぐ情報は,1伝送毎の情報だけです。すべての伝送情報を一度に自動起動プログラムへ引き継ぐ事はできません。

シグナルの抑止

次のシグナルをsighold()でマスクした状態で起動します。そのため,自動起動プログラムが次のシグナルを受信した場合,次のシグナルは保留されます。

  • SIGTERM

  • SIGCHLD

  • SIGHUP

環境変数JP1FTS_AUTO_SIGNALMASK_DELETEを使用することで,自動起動プログラムで,上記のシグナルを受信できるようになります。

また,Linuxでは,環境変数JP1FTS_AUTO_SIGNALMASK_DELETEを使用しない場合,プログラム起動時,SIGCHLDシグナルに対するアクションがSIG_IGNに設定されています。このため,自動起動プログラムでsystem()関数を呼出すと,system()関数はエラーリターン(errno = 10)します。このエラーを回避するには,system()関数を呼出す前にSIGCHLDシグナルに対するアクションをSIG_DFLに設定してください。

自動起動プログラムを登録するコマンドの例を,次に示します。

[図データ]

次の情報を登録します。

ftsautomaコマンドについては,「6. コマンド」の「ftsautoma−自動起動プログラムの登録・削除・表示−」を参照してください。