diff --git a/ci-scripts/Jenkinsfile-GitLab-COTS-UE-Test b/ci-scripts/Jenkinsfile-GitLab-COTS-UE-Test
index 0c8efa674152b3a64cabd31bf2c1692b5db1215d..25090eec757eb241f2fc19daec6fc4724bce9499 100644
--- a/ci-scripts/Jenkinsfile-GitLab-COTS-UE-Test
+++ b/ci-scripts/Jenkinsfile-GitLab-COTS-UE-Test
@@ -163,6 +163,7 @@ pipeline {
           sleep 60
           sh "oc describe pod &>> archives/describe-pods.logs"
           sh "oc get pods -o wide"
+          CollectLogsFromPods()
           coreStatus = checkCoreNetworkDeployment()
           if (coreStatus > 0) {
             error ('Core Deployment went wrong')
@@ -511,7 +512,7 @@ def checkCoreNetworkDeployment() {
   return status
 }
 
-def retrieveLogsFromPods() {
+def CollectLogsFromPods() {
   sh "mkdir -p archives"
   for (ii = 0; ii < imageNames.size(); ii++) {
     podName = sh returnStdout: true, script: "oc get pods | grep ${imageNames[ii]} | awk {'print \$1'} || true"
@@ -520,11 +521,14 @@ def retrieveLogsFromPods() {
       nrfPod = podName
     }
     try {
-      sh "oc logs ${podName} ${containerInPods[ii]} &> archives/${imageNames[ii]}.logs"
+      sh "nohup oc logs -f ${podName} ${containerInPods[ii]} &> archives/${imageNames[ii]}.logs &"
     } catch (Exception e) {
       echo "Getting logs from ${podName} failed"
     }
   }
+}
+
+def retrieveLogsFromPods() {
   // Retrieving mysql logs
   podName = sh returnStdout: true, script: "oc get pods | grep mysql | awk {'print \$1'} || true"
   podName = podName.trim()
diff --git a/ci-scripts/charts/oai-amf/values.yaml b/ci-scripts/charts/oai-amf/values.yaml
index c8838c974d3c5a65bf138406a7067cdd3b8aeb35..6f845e96cc586e98d7c217c9042ed28cffc3fd16 100644
--- a/ci-scripts/charts/oai-amf/values.yaml
+++ b/ci-scripts/charts/oai-amf/values.yaml
@@ -97,7 +97,7 @@ readinessProbe: false
 
 livenessProbe: false
 
-terminationGracePeriodSeconds: 5
+terminationGracePeriodSeconds: 60
 
 nodeSelector: {}
 
diff --git a/ci-scripts/charts/oai-ausf/values.yaml b/ci-scripts/charts/oai-ausf/values.yaml
index d951cb0bd8bfbe68bdd4d9df206c516819f6900b..0e24dc9402775b94fa14cd193a90c287dc1a4473 100644
--- a/ci-scripts/charts/oai-ausf/values.yaml
+++ b/ci-scripts/charts/oai-ausf/values.yaml
@@ -81,7 +81,7 @@ readinessProbe: true
 
 livenessProbe: false
 
-terminationGracePeriodSeconds: 5
+terminationGracePeriodSeconds: 60
 
 nodeSelector: {}
 
diff --git a/ci-scripts/charts/oai-nrf/values.yaml b/ci-scripts/charts/oai-nrf/values.yaml
index b90c63231fd5eea1cda15cdfdd94964ddbea90a3..167a6c20f9a168b5b73515f3dab3bc4431048aab 100644
--- a/ci-scripts/charts/oai-nrf/values.yaml
+++ b/ci-scripts/charts/oai-nrf/values.yaml
@@ -73,7 +73,7 @@ resources:
       cpu: 100m
       memory: 128Mi
 
-terminationGracePeriodSeconds: 5
+terminationGracePeriodSeconds: 60
 
 readinessProbe: true
 
diff --git a/ci-scripts/charts/oai-smf/values.yaml b/ci-scripts/charts/oai-smf/values.yaml
index 911f91e8c06127056ab0644d1c6a366424c32023..8e208e8e13a19f3f76f9a37d54f00435793b4ce6 100644
--- a/ci-scripts/charts/oai-smf/values.yaml
+++ b/ci-scripts/charts/oai-smf/values.yaml
@@ -94,7 +94,7 @@ resources:
 readinessProbe: true
 livenessProbe: false
 
-terminationGracePeriodSeconds: 5
+terminationGracePeriodSeconds: 60
 
 nodeSelector: {}
 
diff --git a/ci-scripts/charts/oai-udm/values.yaml b/ci-scripts/charts/oai-udm/values.yaml
index 0020bdc3bf724d595a9dc78ff61c329d99346681..881610612c80c057981c270b453c029f0ac7c32a 100644
--- a/ci-scripts/charts/oai-udm/values.yaml
+++ b/ci-scripts/charts/oai-udm/values.yaml
@@ -79,7 +79,7 @@ readinessProbe: true
 
 livenessProbe: false
 
-terminationGracePeriodSeconds: 5
+terminationGracePeriodSeconds: 60
 
 nodeSelector: {}
 
diff --git a/ci-scripts/charts/oai-upf/values.yaml b/ci-scripts/charts/oai-upf/values.yaml
index 7ba4caeef84d777b3885fca8ba8e56098be1a76f..86be0e9fb9b3cfa66c68fa50eb39f7e022642d96 100644
--- a/ci-scripts/charts/oai-upf/values.yaml
+++ b/ci-scripts/charts/oai-upf/values.yaml
@@ -112,7 +112,7 @@ readinessProbe: true
 
 livenessProbe: false
 
-terminationGracePeriodSeconds: 5
+terminationGracePeriodSeconds: 60
 
 nodeSelector: {}
 
diff --git a/ci-scripts/checkCOTS-UE-Testing.py b/ci-scripts/checkCOTS-UE-Testing.py
index d91a0094a2a7dc0a85c4652ef2fd203a118f8efd..2213e87ff63da6eac936b951f8587d8a3b658792 100755
--- a/ci-scripts/checkCOTS-UE-Testing.py
+++ b/ci-scripts/checkCOTS-UE-Testing.py
@@ -255,6 +255,32 @@ def detailsCoreDeployment():
     detailsHtml += generate_button_footer()
     return (status, detailsHtml)
 
+def detailsCoreUndeployment():
+    cwd = os.getcwd()
+    status = True
+    detailsHtml = generate_button_header('cn5g-undeploy-details', 'Details on the OAI CN5G Undeployment')
+    detailsHtml += generate_list_header()
+    coreElements = ['oai-nrf', 'oai-amf', 'oai-smf', 'oai-upf', 'oai-ausf', 'oai-udm', 'oai-udr']
+    for element in coreElements:
+        byeMessagePresent = False
+        if not os.path.isfile(f'{cwd}/archives/{element}.logs'):
+            detailsHtml += generate_list_row(f'{element} has NO LOGS', 'remove-sign')
+            status = False
+            continue
+        with open(f'{cwd}/archives/{element}.logs', mode='r', errors='ignore') as nfRuntimeLogFile:
+            for line in nfRuntimeLogFile:
+                result = re.search('system.*info.* Bye. Shutdown Procedure took (?P<duration>[0-9]+) ms', line)
+                if result is not None:
+                    byeMessagePresent = True
+                    duration = int(result.group('duration'))
+                    detailsHtml += generate_list_row(f'{element} has the bye message -- Shutdown took {duration} ms', 'info-sign')
+        if not byeMessagePresent:
+            detailsHtml += generate_list_row(f'{element} has NO Bye message', 'remove-sign')
+            status = False
+    detailsHtml += generate_list_footer()
+    detailsHtml += generate_button_footer()
+    return (status, detailsHtml)
+
 def checkAMFconnection():
     cwd = os.getcwd()
     count = 0
@@ -446,6 +472,7 @@ if __name__ == '__main__':
         ueStop1Status = True
     else:
         ueStop1Status = False
+    (undeployStatus, undeployDetails) = detailsCoreUndeployment()
 
     cwd = os.getcwd()
     with open(os.path.join(cwd, REPORT_NAME), 'w') as wfile:
@@ -464,7 +491,8 @@ if __name__ == '__main__':
         wfile.write(ueStartTest1)
         wfile.write(generate_chapter('Second COTS-UE Deconnection', 'PDU Session release / Deregistration', ueStop1Status))
         wfile.write(ueStopTest1)
-        wfile.write(generate_chapter('Post-Run PCAP Analysis', 'To be done', True))
+        wfile.write(generate_chapter('Shutdown Analysis', 'Status for undeployment', undeployStatus))
+        wfile.write(undeployDetails)
         wfile.write(generate_footer())
     if not coreStatus or not ranStatus or not ueStart0Status or not ueStop0Status or not ueStart1Status or not ueStop1Status:
         sys.exit(1)