スレーブエージェントとプログラムの起動に使用するコマンドで、スレーブのコンピュータの制御、 マスターとの通信を行います。

JNLPスレーブエージェント

JNLPでスレーブエージェントを起動する場合は空欄のままにします。 この設定を行うと、スレーブ情報ページ (hudson/computer/***/) にJNLPの起動アイコンが表示され、 正しいスレーブマシーンからこのリンクをクリックすると、JNLPでスレーブエージェントを起動できます。

このモードは、リモート実行の仕組みを持っていないWindowsのスレーブを使用する場合に便利です。

ssh/rshスレーブエージェント

この項目にコマンドが指定されたとき、マスターでこのコマンドが実行されます。そして、 Hudsonは、その実行コマンドが正しいスレーブマシーン上でslave.jarを起動することを想定しています。

slave.jarのコピーが、hudson.warの中のWEB-INF/slave.jarにあります。

シンプルなケースでは、このコマンドは"ssh hostname java -jar ~/bin/slave.jar"のようなものになります。 しかし、PATHのようなこのスレーブノード独自の環境変数を設定するのと同時に、javaやslave.jarの場所を制御できるように、 スレーブに以下のような小さいシェルスクリプトを書くのはいい考えです。

#!/bin/sh
exec java -jar ~/bin/slave.jar

RSHのようなスレーブマシンでプロセスを起動できるようなコマンドを使用することができます。 ただし、プロセスの標準入出力が"java -jar ~/bin/slave.jar"を接続している必要があります。

スレーブがたくさん配置されている場合、NFSでマウントされた共通の場所から、 slave.jarをロードすることは考える価値があります。 そうすれば、Hudsonを更新するごとにこのファイルを更新する必要がありません。

"ssh -v ホスト名"とすると、接続確認するのに便利です。