I am using bash, afaik. And I have used local pipelines without issue as well. It seems to be related to the agent process. If I send the agent a job (non-pipeline) with the following shell commands
env whoami gtacl -c sysinfo nohup --help ...here is the output: Started by user mwatson <http://bmc053.atc-hp.com:16877/user/mwatson> Building remotely on TSEK_MEG <http://bmc053.atc-hp.com:16877/computer/TSEK_MEG> (TSEK NONSTOP MEG) in workspace /home/hp/meg/remote_jenkins/workspace/WhoAmI-TSEK [WhoAmI-TSEK] $ /bin/sh -xe /tmp/jenkins252912404387723492.sh + export JAVA_HOME=/usr/tandem/java + export ICUROOT=/usr/tandem/xml/T0970H01/icu + export ICU_DATA=/usr/tandem/xml/T0970H01/icu/share/icu/50.1.2/ + export XERCESCROOT=/usr/tandem/xml/T0970H01/xercesc + export JAVA_HOME=/usr/tandem/java + export JDBCMX_DIR=/usr/tandem/jdbcMx + export NSSOAP_HOME=/usr/tandem/nssoap/t0865l01_ABO/ + export AXIS2C_HOME=/usr/tandem/nssoap/t0865l01_ABO/ + export PATH=/home/hp/meg/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb + export PATH=.:/home/hp/meg/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb:/usr/coreutils/bin:/usr/local/bin:/home/hp/meg/usr/local/bin:/usr/tandem/java/bin + export TERM=xterm + export PS1=$PWD: + export PATH=.:/home/hp/meg/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb:/usr/coreutils/bin:/usr/local/bin:/home/hp/meg/usr/local/bin:/usr/tandem/java/bin:/usr/local:/usr/tandem/java/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb + export PATH=.:/home/hp/meg/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb:/usr/coreutils/bin:/usr/local/bin:/home/hp/meg/usr/local/bin:/usr/tandem/java/bin:/usr/local:/usr/tandem/java/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb:/usr/tandem/nssoap/t0865l01_ABO//tools + export PATH=.:/usr/local/maven/bin:/home/hp/meg/apache-jmeter-3.2/bin:/usr/coreutils/bin:.:/home/hp/meg/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb:/usr/coreutils/bin:/usr/local/bin:/home/hp/meg/usr/local/bin:/usr/tandem/java/bin:/usr/local:/usr/tandem/java/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb:/usr/tandem/nssoap/t0865l01_ABO//tools:/usr/local/bin + export JMETER_HOME=/usr/tandem/hpjmeter + export _RLD_FIRST_LIB_PATH=/usr/tandem/hpjmeter/lib/oss: + export _RLD_LIB_PATH=/usr/local/lib:/usr/tandem/jdbcMx/current/lib:/usr/tandem/javaexth11/lib: + export CLASSPATH=/home/sa/mwatson/leiningen/leiningen-2.5.1-standalone.jar:/usr/tandem/javaexth11/lib/tdmext.jar:/usr/tandem/jdbcMx/current/lib/jdbcMx.jar:/usr/tandem/jdbcMp/current/lib/jdbcMp.jar:. + export ICU_DATA=/usr/tandem/xml/T0563H01/lib/icu/data/ + export LINES=32 + export COLUMNS=132 + set -o emacs + export TERM=xterm + export EDITOR=emacs + export PS1=$PWD: + alias cat=/bin/cat + alias ddl=/bin/gtacl -s -p ddl + alias fup=/bin/gtacl -s -p fup + alias inspect=/bin/gtacl -s -p inspect set systype oss; cd $PWD; + alias meascom=/bin/gtacl -s -p meascom + alias offender=/bin/gtacl -s -p offender + alias passwd=/bin/gtacl -s -p password + alias pathcom=/bin/gtacl -s -p pathcom + alias pdmcom=/bin/gtacl -s -p pdmcom + alias ping=/bin/gtacl -s -p ping + alias rpcinfo=/bin/gtacl -s -p rpcinfo + alias safecom=/bin/gtacl -s -p safecom + alias scf=/bin/gtacl -s -p scf + alias sqlci=/bin/gtacl -s -p sqlci + alias telnet=/bin/gtacl -s -p telnet + alias perf=perf --display bars_process --colours 30,32,35,31 + alias gtacl=/bin/gtacl -s + alias ddl2java=/home/hp/corg/dev/jtoolkit/ddl2java + alias logoff=exit + [ -x /usr/coreutils/bin/ls ] + alias ls=/usr/coreutils/bin/ls -F --color --time-style=long-iso + alias emacs=emacs -nw + alias vi=vim -X + alias vim=vim -X + alias which=type + alias winzip=jar -cvMf + alias man=/bin/man + alias error=/bin/gtacl -s -p error + alias ls=ls --color=none + alias ssh=/G/system/zssh/sshoss + env AXIS2C_HOME=/usr/tandem/nssoap/t0865l01_ABO/ XERCESCROOT=/usr/tandem/xml/T0970H01/xercesc JENKINS_SERVER_COOKIE=2d931fd0c5f54e82 NSSOAP_HOME=/usr/tandem/nssoap/t0865l01_ABO/ JENKINS_HOME=/var/lib/jenkins HUDSON_SERVER_COOKIE=2d931fd0c5f54e82 BUILD_DISPLAY_NAME=#50 SSH_CONNECTION=172.17.194.124 37930 172.17.199.73 22 JOB_BASE_NAME=WhoAmI-TSEK SSH_CLIENT=172.17.194.124 37930 22 TERM=xterm SHLVL=1 _RLD_LIB_PATH=/usr/local/lib:/usr/tandem/jdbcMx/current/lib:/usr/tandem/javaexth11/lib: NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat JMETER_HOME=/usr/tandem/hpjmeter EDITOR=emacs HUDSON_COOKIE=4041f85e-d35e-4bad-906c-7d261e937d44 CLASSPATH=/home/sa/mwatson/leiningen/leiningen-2.5.1-standalone.jar:/usr/tandem/javaexth11/lib/tdmext.jar:/usr/tandem/jdbcMx/current/lib/jdbcMx.jar:/usr/tandem/jdbcMp/current/lib/jdbcMp.jar:. PWD=/home/hp/meg/remote_jenkins/workspace/WhoAmI-TSEK JOB_DISPLAY_URL=http://bmc053.atc-hp.com:16977/job/WhoAmI-TSEK/display/redirect LOGNAME=meg BUILD_ID=50 EXECUTOR_NUMBER=1 BUILD_TAG=jenkins-WhoAmI-TSEK-50 ICUROOT=/usr/tandem/xml/T0970H01/icu SSH2_PROCESS_NAME=$ZSS0 JOB_NAME=WhoAmI-TSEK RUN_DISPLAY_URL=http://bmc053.atc-hp.com:16977/job/WhoAmI-TSEK/50/display/redirect PATH=.:/usr/local/maven/bin:/home/hp/meg/apache-jmeter-3.2/bin:/usr/coreutils/bin:.:/home/hp/meg/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb:/usr/coreutils/bin:/usr/local/bin:/home/hp/meg/usr/local/bin:/usr/tandem/java/bin:/usr/local:/usr/tandem/java/bin:/bin:/bin/unsupported:/usr/bin:/usr/ucb:/usr/tandem/nssoap/t0865l01_ABO//tools:/usr/local/bin RUN_CHANGES_DISPLAY_URL=http://bmc053.atc-hp.com:16977/job/WhoAmI-TSEK/50/display/redirect?page=changes OLDPWD=/home/hp/meg WORKSPACE=/home/hp/meg/remote_jenkins/workspace/WhoAmI-TSEK ENV=~/.bashrc JOB_URL=http://bmc053.atc-hp.com:16977/job/WhoAmI-TSEK/ BUILD_NUMBER=50 JAVA_HOME=/usr/tandem/java JENKINS_URL=http://bmc053.atc-hp.com:16977/ ICU_DATA=/usr/tandem/xml/T0563H01/lib/icu/data/ PS1=$PWD: COLUMNS=132 HUDSON_HOME=/var/lib/jenkins NODE_LABELS=MEG NONSTOP TSEK TSEK_MEG LINES=32 BUILD_URL=http://bmc053.atc-hp.com:16977/job/WhoAmI-TSEK/50/ _RLD_FIRST_LIB_PATH=/usr/tandem/hpjmeter/lib/oss: HOME=/home/hp/meg JDBCMX_DIR=/usr/tandem/jdbcMx XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt NODE_NAME=TSEK_MEG HUDSON_URL=http://bmc053.atc-hp.com:16977/ SSH_ORIGINAL_COMMAND=cd "/home/hp/meg/remote_jenkins" && /usr/tandem/java/bin/java -Xmx256m -Xms256m -XX:ThreadTimeSlice -XX:NewRatio=1 -jar slave.jar + whoami meg + gtacl -c sysinfo gtacl[9]: warning: unable to propagate all environment variables SYSINFO - T9268H01 - (01 OCT 2014) SYSTEM \TSEK Date 25 Sep 2018, 12:46:25 (C) Copyright 2014 Hewlett-Packard Development Company L.P. System name \TSEK EXPAND node number 007 Current SYSnn SYS06 System number 078754 Software release ID L18.02.00 + nohup --help Usage: nohup COMMAND [ARG]... or: nohup OPTION Run COMMAND, ignoring hangup signals. --help display this help and exit --version output version information and exit If standard input is a terminal, redirect it from an unreadable file. If standard output is a terminal, append output to 'nohup.out' if possible, '$HOME/nohup.out' otherwise. If standard error is a terminal, redirect it to standard output. To save output to FILE, use 'nohup COMMAND > FILE'. NOTE: your shell may have its own version of nohup, which usually supersedes the version described here. Please refer to your shell's documentation for details about the options it supports. GNU coreutils online help: <http://www.gnu.org/software/coreutils/> Report nohup translation bugs to <http://translationproject.org/team/> Full documentation at: <http://www.gnu.org/software/coreutils/nohup> or available locally via: info '(coreutils) nohup invocation' Finished: SUCCESS On Tuesday, September 25, 2018 at 2:12:32 PM UTC-4, Randall Becker wrote: > > > On Tuesday, September 25, 2018 at 1:37:54 PM UTC-4, Devin Nusbaum wrote: >> >> The `sh` step in a Jenkins Pipeline uses `nohup` to launch the script on >> the agent in such a way that Jenkins can restart while the `sh` step is >> running without interrupting the script’s execution. >> >> Is the `nohup` command available on NonStop/Tandem machines? If so, is it >> reachable from the agent’s PATH? What is the result of `which nohup` on the >> agent? (For me on OS X the result is /usr/bin/nohup, and /usr/bin is on my >> PATH.) >> >> On Sep 25, 2018, at 11:36, Meg Watson <wats...@gmail.com> wrote: >> >> Hi, >> >> I'm a newbie to pipelines. I have a Jenkins master running on Linux >> (RHEL), and I have an agent running (via SSH) on a NonStop/Tandem machine, >> which looks like UNIX for all intents and purposes. I can run various jobs >> on the NonStop agent without issue, build steps with shell commands work >> fine. >> >> However, when I use an "sh ..." command in a pipeline script, it fails >> with an error about "can't find nohup...". >> >> Any suggestions? I even went as far as to create a symlink to nohup in >> the /home/hp/meg/remote_jenkins/workspace/Ermiyas3 directory. No dice. >> >> Here is the pipeline script: >> >> pipeline { >> agent { node { label 'MEG' } } >> environment { >> PATH = >> '/bin:/usr/coreutils/bin:.:/home/hp/meg/bin:/usr/local/bin:/usr/tandem/java/bin:/usr/local/maven/bin' >> } >> stages { >> stage('Build') { >> steps { >> echo 'Building..' >> echo 'env.PATH=' + env.PATH >> sh 'ls' >> } >> } >> stage('Test') { >> steps { >> input 'Click to execute TEST' >> echo 'Testing..' >> sh 'mvn test' >> } >> } >> stage('Deploy') { >> steps { >> input 'Click to execute DEPLOY' >> echo 'Deploying....' >> } >> } >> } >> } >> >> Here is the log: >> >> Started by user mwatson <http://bmc053.atc-hp.com:16877/user/mwatson> >> Running in Durability level: MAX_SURVIVABILITY[Pipeline] nodeRunning on >> TSEK_MEG <http://bmc053.atc-hp.com:16877/computer/TSEK_MEG/> in >> /home/hp/meg/remote_jenkins/workspace/Ermiyas3[Pipeline] {[Pipeline] >> withEnv[Pipeline] {[Pipeline] stage[Pipeline] { (Build)[Pipeline] >> echoBuilding..[Pipeline] >> echoenv.PATH=/bin:/usr/coreutils/bin:.:/home/hp/meg/bin:/usr/local/bin:/usr/tandem/java/bin:/usr/local/maven/bin[Pipeline] >> sh[Ermiyas3] Running shell script[Pipeline] }[Pipeline] // stage[Pipeline] >> stage[Pipeline] { (Test)Stage "Test" skipped due to earlier >> failure(s)[Pipeline] }[Pipeline] // stage[Pipeline] stage[Pipeline] { >> (Deploy)Stage "Deploy" skipped due to earlier failure(s)[Pipeline] >> }[Pipeline] // stage[Pipeline] }[Pipeline] // withEnv[Pipeline] }[Pipeline] >> // node[Pipeline] End of Pipelinejava.io.IOException: error=4002, No such >> file or directory >> at java.lang.UNIXProcess.forkAndExec(Native Method) >> at java.lang.UNIXProcess.<init>(UNIXProcess.java:251) >> at java.lang.ProcessImpl.start(ProcessImpl.java:134) >> at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) >> Also: hudson.remoting.Channel$CallSiteStackTrace: Remote call to TSEK_MEG >> at >> hudson.remoting.Channel.attachCallSiteStackTrace(Channel.java:1741) >> at >> hudson.remoting.UserRequest$ExceptionResponse.retrieve(UserRequest.java:357) >> at hudson.remoting.Channel.call(Channel.java:955) >> at hudson.Launcher$RemoteLauncher.launch(Launcher.java:1052) >> at hudson.Launcher$ProcStarter.start(Launcher.java:449) >> at >> org.jenkinsci.plugins.durabletask.BourneShellScript.launchWithCookie(BourneShellScript.java:186) >> at >> org.jenkinsci.plugins.durabletask.FileMonitoringTask.launch(FileMonitoringTask.java:71) >> at >> org.jenkinsci.plugins.workflow.steps.durable_task.DurableTaskStep$Execution.start(DurableTaskStep.java:176) >> at >> org.jenkinsci.plugins.workflow.cps.DSL.invokeStep(DSL.java:229) >> at >> org.jenkinsci.plugins.workflow.cps.DSL.invokeMethod(DSL.java:153) >> at >> org.jenkinsci.plugins.workflow.cps.CpsScript.invokeMethod(CpsScript.java:122) >> at sun.reflect.GeneratedMethodAccessor907.invoke(Unknown Source) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:498) >> at >> org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93) >> at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325) >> at >> groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1213) >> 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 >> org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:157) >> at >> org.kohsuke.groovy.sandbox.GroovyInterceptor.onMethodCall(GroovyInterceptor.java:23) >> at >> org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.SandboxInterceptor.onMethodCall(SandboxInterceptor.java:133) >> at >> org.kohsuke.groovy.sandbox.impl.Checker$1.call(Checker.java:155) >> at >> org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:159) >> at >> org.kohsuke.groovy.sandbox.impl.Checker.checkedCall(Checker.java:129) >> at >> com.cloudbees.groovy.cps.sandbox.SandboxInvoker.methodCall(SandboxInvoker.java:17) >> at >> com.cloudbees.groovy.cps.impl.ContinuationGroup.methodCall(ContinuationGroup.java:57) >> at >> com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.dispatchOrArg(FunctionCallBlock.java:109) >> at >> com.cloudbees.groovy.cps.impl.FunctionCallBlock$ContinuationImpl.fixArg(FunctionCallBlock.java:82) >> at sun.reflect.GeneratedMethodAccessor821.invoke(Unknown Source) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at java.lang.reflect.Method.invoke(Method.java:498) >> at >> com.cloudbees.groovy.cps.impl.ContinuationPtr$ContinuationImpl.receive(ContinuationPtr.java:72) >> at >> com.cloudbees.groovy.cps.impl.ConstantBlock.eval(ConstantBlock.java:21) >> at com.cloudbees.groovy.cps.Next.step(Next.java:83) >> at >> com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:174) >> at >> com.cloudbees.groovy.cps.Continuable$1.call(Continuable.java:163) >> at >> org.codehaus.groovy.runtime.GroovyCategorySupport$ThreadCategoryInfo.use(GroovyCategorySupport.java:122) >> at >> org.codehaus.groovy.runtime.GroovyCategorySupport.use(GroovyCategorySupport.java:261) >> at >> com.cloudbees.groovy.cps.Continuable.run0(Continuable.java:163) >> at >> org.jenkinsci.plugins.workflow.cps.SandboxContinuable.access$101(SandboxContinuable.java:34) >> at >> org.jenkinsci.plugins.workflow.cps.SandboxContinuable.lambda$run0$0(SandboxContinuable.java:59) >> at >> org.jenkinsci.plugins.scriptsecurity.sandbox.groovy.GroovySandbox.runInSandbox(GroovySandbox.java:108) >> at >> org.jenkinsci.plugins.workflow.cps.SandboxContinuable.run0(SandboxContinuable.java:58) >> at >> org.jenkinsci.plugins.workflow.cps.CpsThread.runNextChunk(CpsThread.java:174) >> at >> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.run(CpsThreadGroup.java:332) >> at >> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup.access$200(CpsThreadGroup.java:83) >> at >> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:244) >> at >> org.jenkinsci.plugins.workflow.cps.CpsThreadGroup$2.call(CpsThreadGroup.java:232) >> at >> org.jenkinsci.plugins.workflow.cps.CpsVmExecutorService$2.call(CpsVmExecutorService.java:64) >> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >> at >> hudson.remoting.SingleLaneExecutorService$1.run(SingleLaneExecutorService.java:131) >> at >> jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28) >> at >> jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59) >> at >> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) >> Caused: java.io.IOException: Cannot run program "nohup" (in directory >> "/home/hp/meg/remote_jenkins/workspace/Ermiyas3"): error=4002, No such file >> or directory >> at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) >> at hudson.Proc$LocalProc.<init>(Proc.java:249) >> at hudson.Proc$LocalProc.<init>(Proc.java:218) >> at hudson.Launcher$LocalLauncher.launch(Launcher.java:929) >> at hudson.Launcher$ProcStarter.start(Launcher.java:449) >> at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1299) >> at hudson.Launcher$RemoteLaunchCallable.call(Launcher.java:1259) >> at hudson.remoting.UserRequest.perform(UserRequest.java:212) >> at hudson.remoting.UserRequest.perform(UserRequest.java:54) >> at hudson.remoting.Request$2.run(Request.java:369) >> at >> hudson.remoting.InterceptingExecutorService$1.call(InterceptingExecutorService.java:72) >> at java.util.concurrent.FutureTask.run(FutureTask.java:266) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) >> at java.lang.Thread.run(Thread.java:748) >> Finished: FAILURE >> >> >> -- >> 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-use...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/jenkinsci-users/fb15a0dd-1d11-4057-9300-ac8dfe94faf1%40googlegroups.com >> >> <https://groups.google.com/d/msgid/jenkinsci-users/fb15a0dd-1d11-4057-9300-ac8dfe94faf1%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> For more options, visit https://groups.google.com/d/optout. >> >> /usr/coreutls/bin/nohup should be usable as a suitable replacement for sh >> nohup. Make sure your path has /usr/coreutils/bin/nohup early on so that it >> gets picked up. You might have to futz with the .profile on your agent's >> user to make this happen. You might always want to use bash as your agent's >> default program. >> >> >> >> I’ve been using pipelines for a while (in local mode only) without >> hitting this issue. However, I start Jenkins using Bash instead of Ksh, >> which I would suggest may be involved. >> >> >> >> Regards, >> >> Randall >> > -- 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/4fdffa6d-feaa-49c1-8f94-01babc1ef548%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.