Search code examples
jenkinsjenkins-pipelinecygwin

Jenkin pipeling not running shell script on cygwin (windows)


I wanted to run a shell script via jenkin pepeline on cygwin. I am able to do it in a free style project but when i converted the freestyle project into pipelin. The pipeline project is not working. The root of the problem i think is "Caused: java.io.IOException: Cannot run program "nohup" Can anyone suggest any solution?

**java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    at java.lang.ProcessBuilder.start(Unknown Source)
    at hudson.Proc$LocalProc.<init>(Proc.java:252)
    at hudson.Proc$LocalProc.<init>(Proc.java:221)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:995)
    at hudson.Launcher$ProcStarter.start(Launcher.java:507)
    at org.jenkinsci.plugins.durabletask.BourneShellScript.launchWithCookie(BourneShellScript.java:176)
    at org.jenkinsci.plugins.durabletask.FileMonitoringTask.launch(FileMonitoringTask.java:132)
    at org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.start(DurableTaskStep.java:324)
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:319)
    at org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:193)
    at org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122)
    at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1278)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1138)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:810)
    at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:46)
    at groovy.lang.MetaClassImpl.invokeMethodOnGroovyObject(MetaClassImpl.java:1278)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1172)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1022)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:42)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at com.cloudbees.groovy.cps.sandbox.DefaultInvoker.methodCall(DefaultInvoker.java:20)
Caused: java.io.IOException: Cannot run program "nohup" (in directory "D:\Jenkins\Instance\workspace\SVNFreestyle-pipeline\BPCU_APP_CSCI"): CreateProcess error=2, The system cannot find the file specified**

Solution

  • So, I was able to find the solution. By doing the following

    D://CygwinPortable//App//Cygwin//bin//bash.exe --login -c "cd '${env.WORKSPACE}'/ShellScriptDirectory; ./filename.sh "

    PS: I used portable cygwin here