@@ -99,10 +99,14 @@ usage_percentage=$(df -P "$target_dir" | awk 'NR==2 {print $5}' | sed 's/%%//')
9999echo "[disk usage checker] Volume usage percentage: current = ${usage_percentage} ; allowed = ${usage_percentage_limit}"
100100if [ "$usage_percentage" -gt "$usage_percentage_limit" ]; then
101101 echo "[disk usage checker] Disk usage exceeds the volume percentage of ${usage_percentage_limit} for mounted directory, terminating..."
102- ps -o sess --no-headers | sort -u | while read sid; do
103- [[ "$sid" -eq "${$}" ]] && continue
104- pkill --signal SIGKILL --session "$sid"
105- done
102+ if [ "$HAVE_SESSION_TOOLS" = "true" ]; then
103+ ps -o sess --no-headers | sort -u | while read sid; do
104+ [[ "$sid" -eq "${$}" ]] && continue
105+ pkill --signal SIGKILL --session "$sid"
106+ done
107+ else
108+ kill 0
109+ fi
106110 exit 1
107111fi
108112sleep 5
@@ -1321,16 +1325,30 @@ func buildPodCommand(
13211325) string {
13221326 var cmd strings.Builder
13231327
1328+ // Check if session management tools are available once and store in a variable.
1329+ cmd .WriteString ("if command -v setsid >/dev/null 2>&1 && command -v ps >/dev/null 2>&1 && command -v pkill >/dev/null 2>&1; then\n " )
1330+ cmd .WriteString (" HAVE_SESSION_TOOLS=true\n " )
1331+ cmd .WriteString ("else\n " )
1332+ cmd .WriteString (" HAVE_SESSION_TOOLS=false\n " )
1333+ cmd .WriteString ("fi\n \n " )
1334+
13241335 // Start the checker in the background.
13251336 cmd .WriteString (volumeCheckerScript )
13261337 cmd .WriteString (` & ` )
13271338
1328- // Start the gather command in a separate session.
1329- cmd .WriteString ("setsid -w bash <<-MUSTGATHER_EOF\n " )
1339+ // Start the gather command in a separate session if setsid, ps, and pkill are available.
1340+ // Fall back to simpler approach if any of these tools are not present (minimal images).
1341+ cmd .WriteString (`if [ "$HAVE_SESSION_TOOLS" = "true" ]; then` )
1342+ cmd .WriteString ("\n setsid -w bash <<-MUSTGATHER_EOF\n " )
13301343 cmd .WriteString (gatherCommand )
13311344 cmd .WriteString ("\n MUSTGATHER_EOF\n " )
1345+ cmd .WriteString ("else\n " )
1346+ cmd .WriteString (" " )
1347+ cmd .WriteString (gatherCommand )
1348+ cmd .WriteString ("\n fi; " )
13321349
13331350 // Make sure all changes are written to disk.
13341351 cmd .WriteString (`sync && echo 'Caches written to disk'` )
1352+
13351353 return cmd .String ()
13361354}
0 commit comments