Why only escape the command when it contains space, you could always do it, so other characters would also be properly escaped, the if is useless. if(javaCommand.contains(" ")) {
javaCommand = "\"" + javaCommand + "\""; } From: jenkinsci-users@googlegroups.com <jenkinsci-users@googlegroups.com> On Behalf Of Slide Sent: August 27, 2020 10:11 AM To: Jenkins User Mailing List <jenkinsci-users@googlegroups.com> Subject: Re: Windows slave by ssh I opened this PR against the ssh-agents-plugin https://github.com/jenkinsci/ssh-slaves-plugin/pull/183 On Thu, Aug 27, 2020 at 6:22 AM Jérôme Godbout <godbo...@amotus.ca<mailto:godbo...@amotus.ca>> wrote: This is exactly what I’m using now, not more need for Cygwin for ssh (about time Microsoft 😉). Remove any space from the JAVA_HOME path solve the issue, but the default install path for Java is inside the Program Files folders, so by default it has a space. Not supporting spaces (and probably other character) is a bug. It’s not a big issue, but this should be fix. As for the \ or /, this should be handle by the source code and perform the right conversion to node native format. In my script I always use *nix / path and convert them to native before running the actual command in a shell. I even made some Groovy pipeline functions to be platform agnostic as much as possible, the default implementation force us to put if(isUnix()) everywhere and it’s annoying. Having a function to manipulate the files and folders (create, remove, touch, move, rename) should be there by default for CI pipelines and be platform agnostic. This is pretty basic stuff. This is where you realize Qt, C# and Python are way ahead into path manipulation. Do a little as possible into Groovy-ish language and use Ansible or Python scripts to do the actual work lifting, made my life so much less painful. From: jenkinsci-users@googlegroups.com<mailto:jenkinsci-users@googlegroups.com> <jenkinsci-users@googlegroups.com<mailto:jenkinsci-users@googlegroups.com>> On Behalf Of Slide Sent: August 26, 2020 6:03 PM To: Jenkins User Mailing List <jenkinsci-users@googlegroups.com<mailto:jenkinsci-users@googlegroups.com>> Subject: Re: Windows slave by ssh Well, running on Cygwin is almost like running on a *NIX platform. Not exactly, but almost. I am referring to the OpenSSH-Win64 port that is now supported by MS. On Wed, Aug 26, 2020 at 2:50 PM Jason Pyeron <jpye...@pdinc.us<mailto:jpye...@pdinc.us>> wrote: Sorry to be a Johnny come lately – but we have only used SSH launch of windows for quite a long time now. We use Cygwin to do so. You can use any SSH server though. The most important thing is to ensure Java’s home has no spaces in the path. The second most important thing is to use mixed pathing constructs. E.g. javaPath='C:/programs.x64/Java/jdk-14/bin/java note the forward slashes. It is a happy middle ground for bash and java. From: jenkinsci-users@googlegroups.com<mailto:jenkinsci-users@googlegroups.com> <jenkinsci-users@googlegroups.com<mailto:jenkinsci-users@googlegroups.com>> On Behalf Of Slide Sent: Wednesday, August 26, 2020 5:18 PM To: Jenkins User Mailing List <jenkinsci-users@googlegroups.com<mailto:jenkinsci-users@googlegroups.com>> Subject: Re: Windows slave by ssh Historically, Windows agents couldn't really be run using this plugin, it is only somewhat recently that Windows had good SSH support. So, there are probably some leftovers from the plugin only being used on *NIX systems. On Wed, Aug 26, 2020 at 2:07 PM Jérôme Godbout <godbo...@amotus.ca<mailto:godbo...@amotus.ca>> wrote: Hi, Reinstalling Java into a path like c:\Java work just fine now. Wonder why the Linux and the Windows master doesn’t show the same behavior on this? Is this code part only for *nix platform? Anyway, thanks for the pointer, Jerome From: jenkinsci-users@googlegroups.com<mailto:jenkinsci-users@googlegroups.com> <jenkinsci-users@googlegroups.com<mailto:jenkinsci-users@googlegroups.com>> On Behalf Of Slide Sent: August 26, 2020 4:23 PM To: Jenkins User Mailing List <jenkinsci-users@googlegroups.com<mailto:jenkinsci-users@googlegroups.com>> Subject: Re: Windows slave by ssh It looks like this code would need to be updated to handle when there are spaces: https://github.com/jenkinsci/ssh-slaves-plugin/blob/master/src/main/java/hudson/plugins/sshslaves/JavaVersionChecker.java#L91. I have the reverse, a Windows controller and Linux agents. I specify the JAVA_HOME environment variable in my agent configuration and that works. Can you try that? On Wed, Aug 26, 2020 at 12:38 PM Jérôme Godbout <godbo...@amotus.ca<mailto:godbo...@amotus.ca>> wrote: Hi, I’m trying to access a Windows slave with SSH using Linux master Jenkins 2.235.5. [08/26/20 15:24:48] [SSH] Checking java version of c:\JenkinsSlave/jdk/bin/java Couldn't figure out the Java version of c:\JenkinsSlave/jdk/bin/java The system cannot find the path specified. [08/26/20 15:24:49] [SSH] Checking java version of C:\Program Files\Java\jdk1.8.0_161/bin/java Couldn't figure out the Java version of C:\Program Files\Java\jdk1.8.0_161/bin/java 'C:\Program' is not recognized as an internal or external command, operable program or batch file. … But when I try it from my other Windows Jenkins master 2.251 (my development server for testing purpose) it does connect without issue and find the proper java into the same path. [08/21/20 13:48:50] [SSH] Starting agent process: cd "c:\JenkinsSlave" && "C:\Program Files\Java\jdk1.8.0_161\bin\java.exe" -jar remoting.jar -workDir c:\JenkinsSlave -jar-cache c:\JenkinsSlave/remoting/jarCache Aug 21, 2020 1:48:50 PM org.jenkinsci.remoting.engine.WorkDirManager initializeWorkDir Seem like the c:\Program Files\Java… is not escaped properly under Linux master. How to fix that? How can I fix this? Should I escape the env var JAVA_HOME and add quote into it? will it break something else? I’m trying to move the slave execution from my development Windows laptop to our official Linux master. Thanks, Jerome -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/YTOPR0101MB2315834EB1C8497CD210EEA4CD540%40YTOPR0101MB2315.CANPRD01.PROD.OUTLOOK.COM<https://groups.google.com/d/msgid/jenkinsci-users/YTOPR0101MB2315834EB1C8497CD210EEA4CD540%40YTOPR0101MB2315.CANPRD01.PROD.OUTLOOK.COM?utm_medium=email&utm_source=footer>. -- Website: http://earl-of-code.com -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAPiUgVfLE6ybdjjMgzrpVt9UNCB0MF6CBTndkZWgXApOMnv5xQ%40mail.gmail.com<https://groups.google.com/d/msgid/jenkinsci-users/CAPiUgVfLE6ybdjjMgzrpVt9UNCB0MF6CBTndkZWgXApOMnv5xQ%40mail.gmail.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/YTOPR0101MB2315DF8810480BC8915BEAF8CD540%40YTOPR0101MB2315.CANPRD01.PROD.OUTLOOK.COM<https://groups.google.com/d/msgid/jenkinsci-users/YTOPR0101MB2315DF8810480BC8915BEAF8CD540%40YTOPR0101MB2315.CANPRD01.PROD.OUTLOOK.COM?utm_medium=email&utm_source=footer>. -- Website: http://earl-of-code.com -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAPiUgVfES%3Dr9KLU37ZFfV7ujuS4gjDmPccEuk%2BNnGmg0GvYZCw%40mail.gmail.com<https://groups.google.com/d/msgid/jenkinsci-users/CAPiUgVfES%3Dr9KLU37ZFfV7ujuS4gjDmPccEuk%2BNnGmg0GvYZCw%40mail.gmail.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/1ef301d67bf2%24e9099630%24bb1cc290%24%40pdinc.us<https://groups.google.com/d/msgid/jenkinsci-users/1ef301d67bf2%24e9099630%24bb1cc290%24%40pdinc.us?utm_medium=email&utm_source=footer>. -- Website: http://earl-of-code.com -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAPiUgVcfDgExQ_Dq0fmFqq7cdk51sAuKQPpG97raRfR6JwjifA%40mail.gmail.com<https://groups.google.com/d/msgid/jenkinsci-users/CAPiUgVcfDgExQ_Dq0fmFqq7cdk51sAuKQPpG97raRfR6JwjifA%40mail.gmail.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/YTOPR0101MB231531FEA65DBE1914E14D9FCD550%40YTOPR0101MB2315.CANPRD01.PROD.OUTLOOK.COM<https://groups.google.com/d/msgid/jenkinsci-users/YTOPR0101MB231531FEA65DBE1914E14D9FCD550%40YTOPR0101MB2315.CANPRD01.PROD.OUTLOOK.COM?utm_medium=email&utm_source=footer>. -- Website: http://earl-of-code.com -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com<mailto:jenkinsci-users+unsubscr...@googlegroups.com>. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/CAPiUgVevYf_T0dCfYF6uMBgK0C4vJNV-jHa2DFqsV9wGtuRPmg%40mail.gmail.com<https://groups.google.com/d/msgid/jenkinsci-users/CAPiUgVevYf_T0dCfYF6uMBgK0C4vJNV-jHa2DFqsV9wGtuRPmg%40mail.gmail.com?utm_medium=email&utm_source=footer>. -- You received this message because you are subscribed to the Google Groups "Jenkins Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to jenkinsci-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-users/YTOPR0101MB2315B53FCE5AAAC3B3C93D1ACD550%40YTOPR0101MB2315.CANPRD01.PROD.OUTLOOK.COM.