ユーザがスレーブの使用を開始したときにJenkinsをオフラインに設定する方法はありますか?ユーザがWindowsにログインしたときにjenkinsスレーブをオフラインにする
EDIT:私は平均的なユーザーログを使用して開始します。
ユーザがスレーブの使用を開始したときにJenkinsをオフラインに設定する方法はありますか?ユーザがWindowsにログインしたときにjenkinsスレーブをオフラインにする
EDIT:私は平均的なユーザーログを使用して開始します。
可能な解決策の1つは、Slave Prerequisites Pluginです。 これは、スクリプトの面で仕事の前提条件を追加することができます:ジョブはその上で実行することができます前に、スレーブノード上で実行するスクリプトを設定し
。 0以外の状態を返すと、ノードはジョブ の実行を拒否され、別のノードが選択されます。 は、利用可能なノードが の前提条件と一致するのを待って、ビルドキューに戻ります。次のWindowsバッチスクリプトで
:
python.exe -c "import psutil; assert len(psutil.get_users())==0"
あなたはpsutilを取得する必要がありますが、あなたは純粋なWindowsのシェルで何かを作ることができるかもしれません。最も明白な欠点は、利用可能とマークされたものを使用するのではなく、多くのシステムを通過することです。
もっとJenkins私の答えよりもネイティブの解決策。 +1 – VonC
Jenkins slave can be registered as a Windows service以降、1つの方法は、現在ログオンしているユーザーがいないことです。
一つは、ユーザーがログオンしているかどうかを確認思われる、regularely実行し、Windowsタスクを思い付くことができ、そして:
誰がログオンしているかを確認するには、「From WindowsService how can I find currently logged in user from C#?」を参照してください。
これには、別のポーリングタスクが実行されている必要があります。ログオンしているユーザーがいるかどうかをアサートして、各タスクを開始することもできます。私は、https://wiki.jenkins-ci.org/display/JENKINS/Distributed+builds#Distributedbuilds-Nodemonitoring – Oleksiy
のようなノード上にモニターを追加するプラグインの点でもっと考えていました@Oleksiyは、ノードモニターがhttpを実行するようにしました://social.technet.microsoft.com/Forums/en/ITCG/thread/701515b3-9af3-49f4-b624-09a083cbed6bまたはhttp://technet.microsoft.com/en-us/sysinternals/bb897545 – VonC
私はあなたが "スレーブを使用して開始"を定義する必要があると思います:ユーザーがログインしたことを意味しますか?マウスを動かした? CPU使用率が増加しましたか? – Slav