Kill entity when there are no entities nearby

I am creating a apocalypse map and there is a radiation meter, the radiation works with armor stands that spawn close to zombies and they should disappear if there are no zombies nearby, i created a command for that but for some reason if i set the distance to less then 50 all of the existing armor stands despawn and new ones do not spawn This is the command that spawns them :

/execute as @e[team=mob] at @s run execute unless entity @e[tag=radiationzone,distance=..15] run summon armor_stand ~ ~-1 ~ {Small:1b,NoGravity:1b,Silent:1b,Invulnerable:1b,Invisible:1b,Tags:["radiationzone"],DisabledSlots:4144959}

This is the command that kills them

/execute as @e[tag=radiationzone] run execute unless entity @e[team=mob,distance=..30] run kill @s

Solution 1:

First, let me get things straight: A /execute command should never need the words run execute in them. Your commands can be reduced to:

execute
  as @e[team=mob]
  at @s
  unless entity @e[tag=radiationzone,distance=..15]
run summon armor_stand ~ ~-1 ~ {
                                   Small:1b,
                                   NoGravity:1b,
                                   Silent:1b,
                                   Invulnerable:1b,
                                   Invisible:1b,Tags:[
                                       "radiationzone"
                                   ],
                                   DisabledSlots:4144959
                               }

execute
  as @e[tag=radiationzone]
  unless entity @e[team=mob,distance=..30]
run kill @s

And now I think I see your problem. The as subcommand of /execute only changes the executing entity, but doesn't change the execution location. You correctly remedied this by using at @s immediately after in command 1, but you forgot it in command 2.