WebCFace 2.5.2
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
7-1. webcface-launcher

Since
tools ver1.0

設定ファイルにしたがってコマンドの実行、停止をするボタンをWebUIに表示します。

tomlファイルに設定を記述し、

webcface-launcher ./webcface-launcher.toml

のように指定して起動します。

WebUI上ではそれぞれの設定ファイルに書かれたそれぞれのコマンドを開始するボタンと停止するボタンが表示されます。

launcher.png

Note
  • プロセスの起動と停止には外部ライブラリの tiny-process-library を使用しています
  • (tools ver1.4.2から、Linux,MacOS) webcface-launcherを停止すると、実行中のコマンドにもシグナルが送られます。 SIGINT(Ctrl+C)で停止しない場合は、複数回Ctrl+Cを押すとSIGTERM、SIGKILLに移行して強制的に停止します。

  • (tools ver1.4.3から) Startボタン、Stopボタンの動作はViewを経由せずにFuncで呼び出すこともできます。 (WebUIのFunctionsの画面からも確認できます)
    • Startボタンは member("webcface-launcher").func("コマンド名/start").runAsync()
    • Stopボタンは member("webcface-launcher").func("コマンド名/stop").runAsync()
      などとすると呼び出すことができます。
      • (tools ver2.1から) stop関数はコマンドが停止するまで完了しません。
    • (tools ver2.1.1から) Killボタンを member("webcface-launcher").func("コマンド名/kill").runAsync()
      で呼び出せます。stop関数と同様コマンドが停止するまで完了しません。
    • (tools ver2.1から) func("コマンド名/run") を呼び出すと、startと同様コマンドを開始し、終了するまで待機することができます。
  • (tools ver2.1から) member("webcface-launcher").value("コマンド名.running") でコマンドが実行中かどうかを取得できます。
    • また、 member("webcface-launcher").value("コマンド名.exit_status") で終了コードも取得できます。
  • (tools ver2.1から) member("webcface-launcher").log("コマンド名") でログを取得できます。 (設定ファイルの stdout_capture の説明を参照)

サービスとして (Linuxのみ)

配布しているdebパッケージからインストールした場合は、serverと同様に

sudo systemctl enable webcface-launcher
sudo systemctl start webcface-launcher

でwebcface-launcherをサービスとして自動起動することができます。 ただしその場合は設定ファイルを /etc/webcface/webcface-launcher.toml として置いてください。

コマンドライン引数

Usage: webcface-launcher [OPTIONS] [config_path]
  • config_path: 引数に設定ファイルのパスを渡してください。省略した場合はカレントディレクトリのwebcface-launcher.tomlを開きます。
  • -h: ヘルプを表示します。
  • -a address: (tools ver1.1から) 接続するサーバーのアドレスです。省略時は設定ファイル内の記述を参照し、それもなければ127.0.0.1になります。
  • -p port: (tools ver1.1から) 接続するサーバーのポートです。省略時は設定ファイル内の記述を参照し、それもなければ7530になります。
  • -m name: (tools ver1.1から) WebCFaceでのメンバー名(WebUIで表示される名前)です。省略時は設定ファイル内の記述を参照し、それもなければ webcface-launcher になります。
  • -s: (tools ver1.2から) 設定ファイルを読み込む代わりに、標準入力から入力された文字列をtomlとしてパースします。

設定ファイル

tomlファイルの例

[init]
address = "127.0.0.1"
port = 7530
name = "webcface-launcher"
[[command]]
name = "sleep"
exec = "sleep 1"
[[command]]
name = "main"
workdir = "/path/to/somewhere"
exec = "./main"
stdout_capture = false
stdout_utf8 = true
stop = 2
# または、
# [command.stop]
# exec = "pkill ..."
# workdir = "..."
[command.env]
FOO = "foo"
BAR = "bar"

init

initセクションは省略できます。

  • addressとport
    • 接続するサーバーのアドレスとポートを指定します。デフォルトは127.0.0.1, 7530で、省略できます。
    • また、コマンドライン引数でも設定でき、その場合そちらが優先されます
  • name
    • webcfaceでのこのlauncherの名前です。デフォルトはwebcface-launcherで、省略できます。
    • コマンドライン引数でも設定できます。

command

  • name (必須)
    • webcfaceに表示される名前です
  • exec (必須)
    • 実行するコマンドです
    • スペース区切りで引数も記述できます。
  • workdir
    • コマンドを実行するディレクトリです。
    • 省略時カレントディレクトリになります
  • stdout_capture (tools ver1.3.1 から)
    • "never", "onerror"(デフォルト), "always" が指定可能です
    • alwaysではコマンド終了時、onerrorではエラーで終了時にコマンドの標準出力とエラー出力の内容をlauncherのボタンの下に表示します
    • (ver2.1 から) true の場合(デフォルト)、コマンドの標準出力とエラー出力の内容をLogデータとしてWebCFaceに送信します。
      • WebUIではメニューからコマンド名の名前のLog画面を開くことができます。
    • falseにすると出力をキャプチャーしません。 とくにwindowsではfalseにしないとうまく動作しないプログラムもあるようです。
  • stdout_utf8 (windowsのみ、tools ver1.3.1 から)
    • falseの場合(デフォルト)、stdout_captureで取得したデータはANSIエンコーディングとみなし、UTF-8に変換してからWebCFaceに送られます。
    • trueの場合、stdout_captureで取得したデータをUTF-8とみなし、そのままWebCFaceに送ります。
  • env (tools ver1.4 から)
    • 環境変数を設定します。
  • stop (tools ver1.4.5 から)
    • Stopボタンを押したときの挙動を設定できます。
    • stop = true または stop = 2 がデフォルトの挙動です。
      • Linux,MacOSではSIGINT(Ctrl+C)が送られます。
      • WindowsではTerminateProcessでプロセスツリー全体を停止します。
    • stop = false にするとStopボタンが無効になります。
    • (Linux,MacOSのみ) stop = 9 などとすると送信するシグナルを変更できます。
      • Windowsでは指定したシグナルの番号にかかわらずTerminateProcessで停止します。
    • stop.execを設定するとシグナルを送る代わりに指定したコマンドを実行します。
      • Startで実行するコマンドと同様、workdirやenvなどを設定することもできます。
      • 例えばlauncherから cmd /c などを使って別のプロセスを起動した場合、停止ボタンを押してcmdは停止してもその内側で起動したプロセスは停止しない場合があります。その場合はtaskkillなどで停止するコマンドを別途登録しておくとよいかも
  • kill (tools ver2.1.1 から)
    • Killボタンを押したときの挙動を設定できます。
    • kill = false にするとKillボタンが無効になります。(デフォルトの挙動です)
    • (Linux,MacOSのみ) stop = true または stop = 9 とするとKillシグナルを送ります。 またstop = 15 などとすると送信するシグナルを変更できます。
      • Windowsでは指定したシグナルの番号にかかわらずTerminateProcessで停止します。(Stopボタンと同じ動作になります)
    • stopの設定と同様、kill.execを設定するとシグナルを送る代わりに指定したコマンドを実行します。

WebUIからの設定

WebCFace Desktop ではGUIから設定ファイルを記述することができます。

  • Add New Command でコマンドを追加し、コマンド名、Exec、Workdir を設定できます。
    • Exec と Workdir の右の「...」ボタンを押すとファイル選択ダイアログ、ディレクトリ選択ダイアログが表示されます。
  • Save ボタンを押すと WebCFace Desktop の設定として保存されます。
  • Cancel ボタンを押すと最後にSaveしたときの内容に戻ります。

launcher-setting

Note
Launcherの起動・停止はメニューの「Server Status」からできます