web-dev-qa-db-ja.com

JenkinsWindowsスレーブサービスはデスクトップと相互作用しません

私はこのガイドに従って、サービスとしてWindows8にjenkinsスレーブをインストールしました。

https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+as+a+Windows+service#InstallingJenkinsasaWindowsservice-InstallSlaveasaWindowsservice%28require.NET2.0framework%29

デスクトップと対話するジョブを実行する必要があります(ブラウザーを開くアプリケーションを実行するなど)。そのため、スレーブをサービスとしてインストールした後(マスターからダウンロードしたjnlpを実行)、サービスの「ログオン」を「ディスプレイとの対話を許可する」に変更しました。

何らかの理由で、指定されたユーザーとしてサービスを実行することが推奨されている場合でも、「ローカルシステムアカウント」に対してこれを有効にすることしかできません。ジェンキンス。

しかし、ジョブを実行しても何も起こらず、ブラウザが開かれません。代わりにサービスを停止し、jnlpファイルを介してスレーブを起動すると、ジョブは正常に実行されます。ブラウザーが開きます。

Jenkins Windowsスレーブをサービスとして実行しているときに、デスクトップを操作する運があった人はいますか?

15
u123

サービスはVista以降セッション0で実行され、最初のユーザーはセッション1になります。したがって、これ以上対話することはできません。これはセッション0分離と呼ばれます。

Microsoftは、これを here および here と説明しています。 IPCを使用してサービスと通信する2番目のプログラムを使用する必要があります。

9
magicandre1981

これを解決するには、ここで説明するようにWindows自動ログオンを設定します: https://serverfault.com/questions/269832/windows-server-2008-automatic-user-logon-on-power-on/606130#6061

次に、Jenkinsスレーブの起動バッチを作成し(Jenkinsディレクトリに配置します)、デスクトップでコンソールを起動し、GUIジョブを実行できるようにします。

Java -jar slave.jar -jnlpUrl http://{Your Jenkins Server}:8080/computer/{Your Jenkins Node}/slave-agent.jnlp

(http:// {Your Jenkins Server}:8080/jnlpJars/slave.jarからダウンロードできるslave.jar)

編集:黒いスクリーンショットを取得している場合(Seleniumまたはたとえば、Sikuli)は、通常のXボタンでRDPセッションを閉じる代わりに、リモートデスクトップを切断するバッチファイルを作成します。

%windir%\system32\tscon.exe %SESSIONNAME% /dest:console 
7
Noam Manos

このサービスを使用してWindowsでJenkinsを実行する際に多くの問題が発生しました。代わりに、サービスを無効にしてCMDから実行します。

したがって、CMDを開きます。

cd C:\Program Files (x86)\Jenkins

Java -Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar
jenkins.war --httpPort=9091
6
Ian Thompson

私のJenkinsサービスはユーザー「jenkins」として実行され、デスクトップフォルダを次の場所に作成するだけでした:C:\ Windows\system32\config\systemprofile\desktopそして64ビットWindowsの場合もC:\ Windows\SysWOW64\config\systemprofile\desktop-その後、完全に実行されます。

0
Laurits Nielsen

サービス(@ TestNode)をチェックして、「インタラクティブサービス検出」サービスが開始されていることを確認してください。デフォルトでは、スタートアップの種類は手動に設定されています。自動に設定することもできます。

enter image description here

サービスの開始後、テストノードでテストを実行すると、次のようなメッセージが表示されます。 enter image description here

それをクリックして、メッセージの表示を選択します

enter image description here

あなたはそこで活動が起こるのを見るでしょう。これがお役に立てば幸いです:D

注:他のアカウントでログインし、対話型サービス検出プロンプトを表示できない場合は、サービスを再起動してください。

0
cL83

Javaスレーブサーバーを起動時に直接実行し、サーバーがダウンした場合に監視および再起動するために何かを使用することを検討してください(例: Kiwi Reseter )。

Desktopフォルダーが次のように作成されていることを確認してください。

  • %WINDOWS%/System32/config/systemprofile/Desktop
  • %WINDOWS%/SystemWOW64/config/systemprofile/Desktop

一部のJava Software as a Serviceを実行している間は、これらの存在が必須になる場合があります。

0
ŁukaszBachman