How to make sure tmux seesion will not be killed after pipeline is done?

I have a pipeline that integrates with the tmux sessions and I wish I could save the sessions instead of destroying them after the pipeline is finished with success or else.

I tried different ways to open the sessions but they all got deleted in the end:

sh '''
tmux new-session -d -s '''+session_name2+''' "/bin/bash | tee -i '''+session2_log+'''"
'''

OR

sh(returnStatus: true, script: "tmux new-session -d -s ${session_name1} '/bin/bash | tee -i ${session1_log}' ")

OR

sh '''
tmux new-session -d -s '''+session_name2+''' "/bin/bash | tee -i '''+session2_log+'''" &
'''


Jenkins setup:

Jenkins: 2.387.3
OS: Linux - 3.10.0-1160.88.1.el7.x86_64
Java: 11.0.18 - Eclipse Adoptium (OpenJDK 64-Bit Server VM)
---
PrioritySorter:4.1.0
ant:487.vd79d090d4ea_e
antisamy-markup-formatter:159.v25b_c67cd35fb_
apache-httpcomponents-client-4-api:4.5.14-150.v7a_b_9d17134a_5
authentication-tokens:1.53.v1c90fd9191a_b_
blueocean:1.27.4
blueocean-autofavorite:1.2.5
blueocean-bitbucket-pipeline:1.27.4
blueocean-commons:1.27.4
blueocean-config:1.27.4
blueocean-core-js:1.27.4
blueocean-dashboard:1.27.4
blueocean-display-url:2.4.2
blueocean-events:1.27.4
blueocean-git-pipeline:1.27.4
blueocean-github-pipeline:1.27.4
blueocean-i18n:1.27.4
blueocean-jira:1.27.4
blueocean-jwt:1.27.4
blueocean-personalization:1.27.4
blueocean-pipeline-api-impl:1.27.4
blueocean-pipeline-editor:1.27.4
blueocean-pipeline-scm-api:1.27.4
blueocean-rest:1.27.4
blueocean-rest-impl:1.27.4
blueocean-web:1.27.4
bootstrap5-api:5.2.2-3
bouncycastle-api:2.27
branch-api:2.1071.v1a_188a_562481
build-timeout:1.30
caffeine-api:3.1.6-115.vb_8b_b_328e59d8
checks-api:2.0.0
cloudbees-bitbucket-branch-source:800.va_b_b_9a_a_5035c1
cloudbees-folder:6.815.v0dd5a_cb_40e0e
command-launcher:100.v2f6722292ee8
commons-lang3-api:3.12.0-36.vd97de6465d5b_
commons-text-api:1.10.0-36.vc008c8fcda_7b_
configuration-as-code:1625.v27444588cc3d
credentials:1254.vb_96f366e7b_a_d
credentials-binding:604.vb_64480b_c56ca_
data-tables-api:1.13.3-3
display-url-api:2.3.7
durable-task:506.v1b_3e14b_6f5da_
echarts-api:5.4.0-3
email-ext:2.96
favorite:2.4.1
font-awesome-api:6.3.0-2
generic-webhook-trigger:1.86.3
git:5.0.2
git-client:4.2.0
github:1.37.0
github-api:1.303-417.ve35d9dd78549
github-branch-source:1703.vd5a_2b_29c6cdc
gradle:2.6
handy-uri-templates-2-api:2.1.8-22.v77d5b_75e6953
htmlpublisher:1.31
http_request:1.16
instance-identity:142.v04572ca_5b_265
ionicons-api:45.vf54fca_5d2154
jackson2-api:2.15.0-334.v317a_165f9b_7c
jakarta-activation-api:2.0.1-3
jakarta-mail-api:2.0.1-3
javax-activation-api:1.2.0-6
javax-mail-api:1.6.2-9
jaxb:2.3.8-1
jdk-tool:66.vd8fa_64ee91b_d
jenkins-design-language:1.27.4
jersey2-api:2.39.1-1
jira:3.9
jjwt-api:0.11.5-77.v646c772fddb_0
job-dsl:1.83
jquery3-api:3.6.4-1
junit:1202.v79a_986785076
ldap:673.v034ec70ec2b_b_
lockable-resources:1156.v5e9f897ece02
mailer:448.v5b_97805e3767
matrix-auth:3.1.7
matrix-project:789.v57a_725b_63c79
metrics:4.2.13-420.vea_2f17932dd6
mina-sshd-api-common:2.9.2-62.v199162f0a_2f8
mina-sshd-api-core:2.9.2-62.v199162f0a_2f8
okhttp-api:4.10.0-132.v7a_7b_91cef39c
pam-auth:1.10
pipeline-build-step:491.v1fec530da_858
pipeline-github-lib:42.v0739460cda_c4
pipeline-graph-analysis:202.va_d268e64deb_3
pipeline-graph-view:191.vc6da_9d3eb_70a
pipeline-groovy-lib:656.va_a_ceeb_6ffb_f7
pipeline-input-step:468.va_5db_051498a_4
pipeline-milestone-step:111.v449306f708b_7
pipeline-model-api:2.2131.vb_9788088fdb_5
pipeline-model-definition:2.2131.vb_9788088fdb_5
pipeline-model-extensions:2.2131.vb_9788088fdb_5
pipeline-rest-api:2.32
pipeline-stage-step:305.ve96d0205c1c6
pipeline-stage-tags-metadata:2.2131.vb_9788088fdb_5
pipeline-stage-view:2.32
pipeline-utility-steps:2.15.2
plain-credentials:143.v1b_df8b_d3b_e48
plugin-util-api:3.2.1
popper2-api:2.11.6-2
pubsub-light:1.17
rebuild:320.v5a_0933a_e7d61
resource-disposer:0.22
role-strategy:633.v836e5b_3e80a_5
scm-api:667.v8b_6e07cdc7f2
script-security:1244.ve463715a_f89c
snakeyaml-api:1.33-95.va_b_a_e3e47b_fa_4
sse-gateway:1.26
ssh-credentials:305.v8f4381501156
ssh-slaves:2.877.v365f5eb_a_b_eec
sshd:3.275.v9e17c10f2571
strict-crumb-issuer:2.1.1
structs:324.va_f5d6774f3a_d
timestamper:1.25
token-macro:359.vb_cde11682e0c
trilead-api:2.84.v72119de229b_7
variant:59.vf075fe829ccb
workflow-aggregator:596.v8c21c963d92d
workflow-api:1213.v646def1087f9
workflow-basic-steps:1017.vb_45b_302f0cea_
workflow-cps:3659.v582dc37621d8
workflow-durable-task-step:1246.v5524618ea_097
workflow-job:1292.v27d8cc3e2602
workflow-multibranch:746.v05814d19c001
workflow-scm-step:408.v7d5b_135a_b_d49
workflow-step-api:639.v6eca_cd8c04a_a_
workflow-support:839.v35e2736cfd5c
ws-cleanup:0.45

anyone could help please :slight_smile:

Jenkins works very hard to stop processes that it started. One of the ways that it does that is by adding an environment variable to each process that it starts. By changing those environment variables, it may allow you to persist the changes.

Refer to the old process tree killer page.

1 Like

Hi @MarkEWaite , thanks for the tip and it helps me find the answer.