提交 a8a931d8 编写于 作者: J Jerome Lacoste

JENKINS-8676 Windows XP slave stopped working in 1.396 (related to name change)

The ManagedWindowsServiceLauncher refers to hudson.exe and hudson-slave.exe while we renamed the artifact to jenkins.exe.

Tentative fix, completely untested (no windows box around).
Not sure about the service name (jenkinsslave). I added a second check for backward compatibility but I have no idea if it's useful.
上级 5150e710
......@@ -212,14 +212,14 @@ public class ManagedWindowsServiceLauncher extends ComputerLauncher {
// copy exe
logger.println(Messages.ManagedWindowsServiceLauncher_CopyingSlaveExe());
copyStreamAndClose(getClass().getResource("/windows-service/hudson.exe").openStream(), new SmbFile(remoteRoot,"hudson-slave.exe").getOutputStream());
copyStreamAndClose(getClass().getResource("/windows-service/jenkins.exe").openStream(), new SmbFile(remoteRoot,"jenkins-slave.exe").getOutputStream());
copySlaveJar(logger, remoteRoot);
// copy hudson-slave.xml
// copy jenkins-slave.xml
logger.println(Messages.ManagedWindowsServiceLauncher_CopyingSlaveXml());
String xml = WindowsSlaveInstaller.generateSlaveXml(id,"javaw.exe","-tcp %BASE%\\port.txt");
copyStreamAndClose(new ByteArrayInputStream(xml.getBytes("UTF-8")), new SmbFile(remoteRoot,"hudson-slave.xml").getOutputStream());
copyStreamAndClose(new ByteArrayInputStream(xml.getBytes("UTF-8")), new SmbFile(remoteRoot,"jenkins-slave.xml").getOutputStream());
// install it as a service
logger.println(Messages.ManagedWindowsServiceLauncher_RegisteringService());
......@@ -228,7 +228,7 @@ public class ManagedWindowsServiceLauncher extends ComputerLauncher {
int r = svc.Create(
id,
dom.selectSingleNode("/service/name").getText()+" at "+path,
path+"\\hudson-slave.exe",
path+"\\jenkins-slave.exe",
Win32OwnProcess, 0, "Manual", true);
if(r!=0) {
listener.error("Failed to create a service: "+svc.getErrorMessage(r));
......@@ -310,7 +310,10 @@ public class ManagedWindowsServiceLauncher extends ComputerLauncher {
JISession session = JISession.createSession(auth);
session.setGlobalSocketTimeout(60000);
SWbemServices services = WMI.connect(session, computer.getName());
Win32Service slaveService = services.getService("hudsonslave");
Win32Service slaveService = services.getService("jenkinsslave");
if(slaveService==null) { // backward compatibility. is this needed ?
slaveService = services.getService("hudsonslave");
}
if(slaveService!=null) {
listener.getLogger().println(Messages.ManagedWindowsServiceLauncher_StoppingService());
slaveService.StopService();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册