diff --git a/roles/container-engine/docker/files/cleanup-docker-orphans.sh b/roles/container-engine/docker/files/cleanup-docker-orphans.sh index 2f12def43871a722b9d7cfb9b2302f886e3eecce..d7a9a8f169d03eba59e70cd8f62398eeb56de0c8 100644 --- a/roles/container-engine/docker/files/cleanup-docker-orphans.sh +++ b/roles/container-engine/docker/files/cleanup-docker-orphans.sh @@ -9,21 +9,16 @@ list_descendants () [[ -n "$children" ]] && echo "$children" } -shim_search="^docker-containerd-shim" +shim_search="^docker-containerd-shim|^containerd-shim" count_shim_processes=$(pgrep -f $shim_search | wc -l) -if [ ${count_shim_processes} -eq 0 ]; then - shim_search="^containerd-shim" - count_shim_processes=$(pgrep -f $shim_search | wc -l) -fi - if [ ${count_shim_processes} -gt 0 ]; then # Find all container pids from shims orphans=$(pgrep -P $(pgrep -d ',' -f $shim_search) |\ # Filter out valid docker pids, leaving the orphans egrep -v $(docker ps -q | xargs docker inspect --format '{{.State.Pid}}' | awk '{printf "%s%s",sep,$1; sep="|"}')) - if [[ -n "$orphans" ]] + if [[ -n "$orphans" && -n "$(ps -o ppid= $orphans)" ]] then # Get shim pids of orphans orphan_shim_pids=$(ps -o pid= $(ps -o ppid= $orphans))