Agent on Tandem/NonStop: sh pipeline command yields nohup error, while plain shell script build step works

3,513 views
Skip to first unread message

Meg Watson

unread,
Sep 25, 2018, 11:48:43 AM9/25/18
to Jenkins Users
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
Running in Durability level: MAX_SURVIVABILITY
[Pipeline] node
Running on TSEK_MEG in /home/hp/meg/remote_jenkins/workspace/Ermiyas3
[Pipeline] {
[Pipeline] withEnv
[Pipeline] {
[Pipeline] stage
[Pipeline] { (Build)
[Pipeline] echo
Building..
[Pipeline] echo
env.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 Pipeline
java.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

Devin Nusbaum

unread,
Sep 25, 2018, 1:37:54 PM9/25/18
to jenkins...@googlegroups.com
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.)

--
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.
For more options, visit https://groups.google.com/d/optout.

Randall Becker

unread,
Sep 25, 2018, 2:12:32 PM9/25/18
to Jenkins Users

/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

Meg Watson

unread,
Sep 25, 2018, 2:53:12 PM9/25/18
to Jenkins Users
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
Building remotely on 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

Randall Becker

unread,
Sep 25, 2018, 2:57:32 PM9/25/18
to Jenkins Users
Is it possible that the /bin at the front of PATH is causing ksh instead of bash to be used when you run sh? I think nohup is a builtin in ksh so would get 4002 when forkAndExec is called across the pipe?

Meg Watson

unread,
Sep 25, 2018, 3:22:13 PM9/25/18
to Jenkins Users
The agent may be running /bin/sh.  I suspect this because of the agent log, which contains the following:

[09/25/18 12:17:49] [SSH] Opening SSH connection to tsek.atc-hpe.com:22.
[09/25/18 12:17:49] [SSH] SSH host key matches key in Known Hosts file. Connection will be allowed.
ERROR: Server rejected the 1 private key(s) for meg (credentialId:5ca35b24-5336-4bc1-8c5d-3b767efc09f4/method:publickey)
[09/25/18 12:17:50] [SSH] Authentication successful.
[09/25/18 12:17:50] [SSH] The remote user's environment is:
BASH=/bin/bash
BASHOPTS=cmdhist:complete_fullquote:extquote:force_fignore:hostcomplete:interactive_comments:progcomp:promptvars:sourcepath
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_EXECUTION_STRING=set
BASH_LINENO=()
BASH_SOURCE=()
BASH_VERSINFO=([0]="4" [1]="3" [2]="48" [3]="1" [4]="release" [5]="nsx-tandem-nsk")
BASH_VERSION='4.3.48(1)-release'
DIRSTACK=()
ENV='~/.bashrc'
EUID=54043
GROUPS=()
HOME=/home/hp/meg
HOSTNAME=TSEK
HOSTTYPE=nsx
IFS=$' \t\n'
LOGNAME=meg
MACHTYPE=nsx-tandem-nsk
OPTERR=1
OPTIND=1
OSTYPE=nsk
PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.
PPID=1
PS4='+ '
PWD=/home/hp/meg
SHELL=/bin/sh
SHELLOPTS=braceexpand:hashall:interactive-comments
SHLVL=1
SSH2_PROCESS_NAME='$ZSS0'
SSH_CLIENT='172.17.194.124 59844 22'
SSH_CONNECTION='172.17.194.124 59844 172.17.199.73 22'
SSH_ORIGINAL_COMMAND=set
TERM=dumb
UID=54043
_=bash
[09/25/18 12:17:50] [SSH] Starting sftp client.
[09/25/18 12:17:50] [SSH] Copying latest slave.jar...
[09/25/18 12:17:50] [SSH] Copied 775,665 bytes.
Expanded the channel window size to 4MB
[09/25/18 12:17:50] [SSH] Starting slave process: cd "/home/hp/meg/remote_jenkins" && /usr/tandem/java/bin/java -Xmx256m -Xms256m -XX:ThreadTimeSlice -XX:NewRatio=1  -jar slave.jar
<===[JENKINS REMOTING CAPACITY]===>channel started
Remoting version: 3.21.1
This is a Unix agent

Interestingly enough, the SSHCOM entry for this user has the following (should shell command be set to something?):

 SYSTEM-USER meg

  ALLOW-SHELL YES
  SHELL-PROGRAM /usr/coreutils/bin/bash
  SHELL-COMMAND *NONE*
  SHELL-ENVIRONMENT ~/.bashrc
  ALLOW-CI YES
  ALLOW-CI-PROGRAM-OVERRIDE NO
  CI-PROGRAM *DEFAULT*
  CI-COMMAND *NONE*
  ALLOW-PTY YES
  PTY-SERVER *DEFAULT*
  ALLOW-TCP-FORWARDING YES
  ALLOWED-SUBSYSTEMS (sftp,tacl)
  SUBSYSTEM-MAPPING *NONE*
  ALLOW-GATEWAY-PORTS YES
  ALLOW-MULTIPLE-REMOTE-HOSTS YES
  RESTRICTION-PROFILE *DEFAULT*

Meg Watson

unread,
Sep 25, 2018, 3:27:27 PM9/25/18
to Jenkins Users
Here's some more fun stuff...the Jenkins agent is started via SSH.  So, using SSH from the jenkins account on the RHEL box (same account that jenkins is running under (jenkins):

jenkins@bmc053:~$ ssh m...@tsek.atc-hpe.com 'type nohup'
nohup is /bin/nohup
jenkins@bmc053:~$ ssh m...@tsek.atc-hpe.com 'echo $0'
bash
jenkins@bmc053:~$ ssh m...@tsek.atc-hpe.com 'env $PATH'
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:.: No such file or directory
jenkins@bmc053:~$


On Tuesday, September 25, 2018 at 11:48:43 AM UTC-4, Meg Watson wrote:

Meg Watson

unread,
Sep 25, 2018, 4:07:36 PM9/25/18
to Jenkins Users
I have solved this (for now) by executing ~/.bashrc as a prefix on the slave startup command (hack hack hack -- nasty cough).  This has the effect of setting the PATH variable to have /usr/coreutils/bin in front of /bin.  I am still confused about why the shell running the ssh agent shows itself as /bin/sh when sshcom has bash as the shell, perhaps that's only for interactive ssh users.  I will research this more later this week.

Randall, if you start using pipelines that execute on remote (NonStop) agents with declarative syntax and sh commands, let me know. 

Thanks for the responses!

Meg

On Tuesday, September 25, 2018 at 11:48:43 AM UTC-4, Meg Watson wrote:
Reply all
Reply to author
Forward
0 new messages