2017年1月11日水曜日

HULFT ジョブ定義の入力制限、標準出力、環境変数について

以下の話は、HULFTのバージョン 7、8です。

●ジョブ定義の入力制限
HULFTのジョブ定義では60バイトの入力制限があります。
コマンドのフルパス、標準出力やエラー出力を制御すると、制限に引っかかることが多いです。

以下のように環境変数(PATH)を設定することで、コマンドのパスの分だけ、バイト数を減らすことができます。

《Linuxの場合》
/etc/profileで、環境変数PATHにコマンドのパスを設定
(HULFTでは基本的にrootで各処理が実行されます。)

《Windowsの場合》
システム環境変数で、環境変数PATHにコマンドのパスを設定

●HULFTの環境変数
HULFTではファイルID($FILEID)等のHULFT固有の環境変数を使うことが出来ます。

《Linuxの場合》
ジョブ定義の中でsudoコマンドを使ってコマンドの実行ユーザを変える場合、変更したユーザにはHULFTの環境変数が引き継がれないため、/etc/sudoresのenv_keepで引き継ぎたい変数名を定義する必要があります。

●ジョブ定義の標準出力と標準エラー出力
ジョブ定義のコマンドの標準出力と標準エラー出力は、HULFTで厳密に制御されていないようです。

《Linuxの場合》
そのため、出来るだけ制御(どこかに出力しておく、又は/dev/nullに出力(捨てる))した方が好ましいです。
ジョブ定義で出力を制御しなかった場合、経験だと、HULFTデーモンを起動した際に指定した出力先へ出る模様です。
例えば、集信デーモンを以下コマンドで起動した場合、ジョブ定義で出力を制御していない集信ジョブの標準出力はstdo.log、標準エラー出力はstde.logへ出力されます。
  hulrcvd >stdo.log 2>stde.log

ご指摘、ご質問などはコメントへお願いします。

0 件のコメント:

コメントを投稿