@@ -234,8 +234,9 @@ set_configuration() {
234234 # Export for consistency with original script
235235 export PODMAN_CONTAINER_NAME=" ${CONTAINER_NAME} "
236236 export PODMAN_CONTAINER_IMAGE=" ${CONTAINER_IMAGE} "
237- export PODMAN_ENV_FILE=" $( realpath ${ENV_FILE} ) "
238- export PODMAN_LOG_FILE=" $( realpath ${LOG_FILE} ) "
237+ PODMAN_ENV_FILE=" $( realpath " ${ENV_FILE} " ) "
238+ PODMAN_LOG_FILE=" $( realpath " ${LOG_FILE} " ) "
239+ export PODMAN_ENV_FILE PODMAN_LOG_FILE
239240 export PODMAN_PULL_POLICY=" ${PULL_POLICY} "
240241}
241242# Check and configure sudo requirements
@@ -321,29 +322,39 @@ show_configuration() {
321322}
322323# Cleanup function
323324cleanup_containers () {
325+ if [[ " ${ACTION} " == " cleanup" && " ${CONTAINER_NAME} " == " ${DEFAULT_CONTAINER_NAME} " ]]; then
326+ log_error " Container name must be explicitly specified when using --cleanup"
327+ log_error " Use: $0 --cleanup --name YOUR_CONTAINER_NAME"
328+ exit 1
329+ fi
330+
324331 log_info " Cleaning up existing containers..."
325- ${PODMAN_SUDO} podman stop " ${CONTAINER_NAME} " & > /dev/null
326- ${PODMAN_SUDO} podman rm " ${CONTAINER_NAME} " --force & > /dev/null
332+ ${PODMAN_SUDO} podman stop " ${CONTAINER_NAME} " & > /dev/null || true
333+ ${PODMAN_SUDO} podman rm " ${CONTAINER_NAME} " --force & > /dev/null || true
327334
328- if [[ " $ACTION " == " cleanup" ]]; then
335+ if [[ " ${ ACTION} " == " cleanup" ]]; then
329336 log_info " Removing container image..."
330- ${PODMAN_SUDO} podman rmi " ${CONTAINER_IMAGE} " --force & > /dev/null
337+ ${PODMAN_SUDO} podman rmi " ${CONTAINER_IMAGE} " --force & > /dev/null || true
331338 log_info " Cleanup completed"
332339 exit 0
333340 fi
334341}
335342# Stop containers
336343stop_containers () {
337344 log_info " Stopping running containers..."
338- ${PODMAN_SUDO} podman stop " $( ${PODMAN_SUDO} podman ps -aqf name=${CONTAINER_NAME} ) " & > /dev/null &
339- wait
340- ${PODMAN_SUDO} podman stop " $( ${PODMAN_SUDO} podman ps -aqf name=${CONTAINER_NAME} ) " & > /dev/null && sleep 5
345+ local container_ids
346+ container_ids=" $( ${PODMAN_SUDO} podman ps -aqf name=" ${CONTAINER_NAME} " 2> /dev/null || true) "
347+ if [[ -n " ${container_ids} " ]]; then
348+ ${PODMAN_SUDO} podman stop ${container_ids} & > /dev/null &
349+ wait
350+ ${PODMAN_SUDO} podman stop ${container_ids} & > /dev/null && sleep 5
351+ fi
341352 log_info " Containers stopped"
342353}
343354# Show logs
344355show_logs () {
345356 local container_id
346- container_id=" $( ${PODMAN_SUDO} podman ps -qf name=${CONTAINER_NAME} ) "
357+ container_id=" $( ${PODMAN_SUDO} podman ps -qf name=" ${CONTAINER_NAME} " ) "
347358
348359 if [[ -z " ${container_id} " ]]; then
349360 log_error " No running container found with name: ${CONTAINER_NAME} "
@@ -394,7 +405,7 @@ run_container() {
394405 pull_image
395406
396407 # Create required directories
397- ${PODMAN_SUDO} mkdir -p " ${DEFAULT_CONTAINER_TMP_VOLUME} " 2> /dev/null
408+ ${PODMAN_SUDO} mkdir -p " ${DEFAULT_CONTAINER_TMP_VOLUME} " 2> /dev/null || true
398409 if [[ ! -d " ${DEFAULT_CONTAINER_TMP_VOLUME} " || ! -w " ${DEFAULT_CONTAINER_TMP_VOLUME} " ]]; then
399410 mkdir -p " ${FALLBACK_CONTAINER_TMP_VOLUME} " 2> /dev/null
400411 if [[ ! -d " ${FALLBACK_CONTAINER_TMP_VOLUME} " || ! -w " ${FALLBACK_CONTAINER_TMP_VOLUME} " ]]; then
@@ -437,7 +448,7 @@ run_container() {
437448
438449 # Get container details
439450 local container_id
440- container_id=" $( ${PODMAN_SUDO} podman ps -qf name=${CONTAINER_NAME} ) "
451+ container_id=" $( ${PODMAN_SUDO} podman ps -qf name=" ${CONTAINER_NAME} " ) "
441452 export PODMAN_ID=" ${container_id} "
442453
443454 if [[ -z " ${container_id} " ]]; then
@@ -447,7 +458,7 @@ run_container() {
447458 fi
448459
449460 local log_path
450- log_path=" $( ${PODMAN_SUDO} podman inspect --format=' {{.HostConfig.LogConfig.Path}}' ${CONTAINER_NAME} 2> /dev/null || echo " N/A" ) "
461+ log_path=" $( ${PODMAN_SUDO} podman inspect --format=' {{.HostConfig.LogConfig.Path}}' " ${CONTAINER_NAME} " 2> /dev/null || echo " N/A" ) "
451462 export PODMAN_LOGPATH=" ${log_path} "
452463
453464 log_info " Container started successfully"
@@ -464,15 +475,24 @@ run_container() {
464475 # Monitor runner process
465476 log_info " Monitoring runner process..."
466477 while true ; do
467- if ! pgrep -f " /usr/local/bin/manager.sh" > /dev/null; then
478+ # Check if container is still running first
479+ if ! ${PODMAN_SUDO} podman ps -q --filter " id=${container_id} " | grep -qi " ${container_id} " ; then
480+ log_warn " Container has stopped"
481+ break
482+ fi
483+
484+ # Check if manager process is running inside container
485+ local process_check
486+ process_check=" $( ${PODMAN_SUDO} podman exec " ${container_id} " ps aux 2> /dev/null | grep -c " /usr/local/bin/manager.sh" || echo " 0" ) "
487+ if [[ " ${process_check} " -eq 0 ]]; then
468488 log_warn " Runner process has stopped"
469489 if [[ " ${VERBOSE} " == " 1" ]]; then
470490 cat " ${LOG_FILE} "
471491 fi
472492 ${PODMAN_SUDO} podman stop " ${container_id} " --ignore
473493 break
474494 fi
475- sleep 5
495+ sleep 12
476496 done
477497
478498 log_info " Runner completed"
0 commit comments