One of the most annoying situations when administering Solaris zones is when you try to reboot / halt a zone , the zone goes into a “shutting_down” state which is kind of a hung state where it is neither down nor up.
The only solution to get the zone out of the “shutting_down” state was to reboot the global which is not really good because it brings down all the other local zones on the global.
On Solaris 10 10/08 (update 6) have observed that there may be a workaround for this issue.
The following are the steps that I followed from the global
zoneadm list -cv — This shows the affected local zone in “shutting_down”
ps -ef | grep zoneadmd — Find the PID for the zoneadmd corresponding to the affected zone
kill -9 PID — Kill the PID which we get from the previous command
zoneadm -z <zone> halt — Run the command to halt a zone with <zone> being affected zone name
The above command should complain about the zoneadmd for the zone being down and being restarted or something like that.
Disclaimer : This worked for me a couple of times on Update 6 but did not work for me on update 5 and below.
Hope this helps.