Exec

説明

Execコンポーネントを使用すると、OS標準のスクリプトを実行することができます。

HubKitがWindowsで実行されている場合はバッチファイルおよびコマンドラインで呼び出せるプログラム、Linux、Macで実行されている場合はシェルスクリプトおよびコマンドラインで呼び出せるプログラムを実行することができます。

exec-4

コンポーネントプロパティ

プロパティー名説明
コマンド実行するプログラムを指定。ファイルはactmgr/dataに保存します
出力元出力元を指定する。「標準出力のみ」はコマンドの実行で出力された標準出力を出力Payloadとします。「標準出力と標準エラー出力」は標準出力と標準エラー出力の両方を出力Payloadとします。 cp.Outputに設定される値は "stdout" , "combine" のいずれか
エラー時実行継続実行したプロセスの終了コードが0以外の場合でも処理を継続するかのフラグ
タイムアウト実行タイムアウト時間の指定
出力型出力形式の設定. cp.OutputTypeで設定される値は "string" , "binary" のいずれか

エラー時実行継続

cv.ExitCodeで終了コードの取得することができます。

ただし、エラー時実行継続を有効にした場合でも、プロセスの起動が成功しない場合などはエラーとなりコンポーネントが停止します。

またLinux/macOSの環境でのExecコンポーネントはシェル経由で指定コマンドを実行します。

シェルは起動したコマンドの終了コードをシェルの終了コードとしますが、起動したコマンドが起動できなかった場合などはシェルがシェルとしてのエラーとして終了コードを返しますので、この場合はプロセスの終了コードではありません。

・シェルが返すエラーコード

127 コマンドが見つからないとき

126 コマンドは存在するが実行権限がなく起動に失敗したときなど

コマンド

コマンド実行するプログラムを指定します。

・実行できるコマンド

Windows環境

バッチファイル、外部コマンドを実行します。外部コマンドはウィンドウ表示のないコンソールアプリケーションです。

dirなどの内部コマンドを実行するには C:¥WINDOWS¥system32¥cmd.exe /c dir のようにcmd.exeのフルパスを指定してください。

バッチファイルを実行する場合はactmgr¥data にコピーして相対パスでパスを指定するか、任意のフォルダーにコピーして絶対パスを指定してください。

外部コマンドを実行する場合はフルパスを指定してください。

Mac、Linux、RaspberryPI、Gravio Hub

シェル /bin/sh を起動してシェルスクリプト、外部コマンドを実行します。

シェルスクリプトを実行する場合はactmgr/data にコピーして相対パスでパスを指定するか、任意のフォルダーにコピーして絶対パスを指定してください。

外部コマンドを実行する場合はフルパスを指定してください。

※シェルスクリプトの場合には、先頭行に #!/bin/sh を付加してください。

※シェルスクリプト、外部コマンドには実行権を付ける必要があります。

※Linux、RaspberryPI、Gravio HubではDocker環境で実行されているためホストOSにインストールされている外部コマンドは使用できません。

※Macではファイルをコピーしてフォルダーにアクセス権が必要です。アクセス権はシステム環境設定のセキュリティとプライバシーでプライバシーにあるフルディスクアクセスにGravio HubKit4.appを追加してください。

・実行するコマンドのパス

Windows環境

バッチファイル、外部コマンドを指定した場合には、パスにはactmgr¥dataが自動的に保管されます。パスの指定も可能です。

※フォルダー名、ファイル名にスペースが含まれている場合には""(ダブルクォート)で囲む必要があります。

相対パスの例:

  • actmgr¥databatchfile.bat を実行する場合
    batchfile.bat
  • actmgr¥data¥subfolderbatchfile.bat を実行する場合
    subfolder¥batchfile.bat
  • actmgr¥data¥subfolder 2021batchfile.bat を実行する場合
    "subfolder 2021¥batchfile.bat"

絶対パスの例:

  • c:¥batchfile.bat を実行する場合
    c:¥batchfile.bat

cmd.exeの内部コマンドの例:

C:¥WINDOWS¥system32¥cmd.exe /c dir

Mac、Linux、RaspberryPI、Gravio Hub環境

シェルスクリプト、外部コマンドを指定した場合には、パスにはactmgr/dataが自動的に補完されます。パスの指定も可能です。

※フォルダー名、ファイル名にスペースが含まれている場合には""(ダブルクォート)で囲む必要があります。

相対パスの例:

  • actmgr/datashellscript.sh を実行する場合
    shellscript.sh
  • actmgr/data/subfoldershellscript.sh を実行する場合
    subfolder/shellscript.sh
  • actmgr/data/subfolder 2021shellscript.sh を実行する場合
    "subfolder 2021/shellscript.sh"

絶対パスの例:

  • /home/usernameshellscript.sh を実行する場合
    /home/username/shellscript.sh

シェルの内部コマンドの例:

ls -lsa