Solaris Zone in “shutting_down” state
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.
April 27, 2009 at 5:08 pm
Hello,
I bumped into these problem. A minute before rebooting global zone,
I did:
1) pkill -9 -z zonename
2) umount -f /zonename
3) zoneadm -z zonename boot
It worked.
Shimon
April 27, 2010 at 2:45 am
Hi Prakash,
I’ve also run into this situation a few times. Something else worthwhile to check, for a zone running in zfs, is the state of any zpools in use by that zone. A zpool in faulted state, perhaps due to potential data corruption in one or more files in the local zone, can prevent local zone shutdown. Check pools with ‘zpool status -v’ from the global zone. Faulted pools can often be resolved with ‘zpool clear ‘. Suspended zoneadm commands then execute immediately.
Hope this helps,
mp
September 28, 2010 at 11:03 pm
Hi, the guide here didn’t always work for me but there’s a slightly different method that’s worked for me whenever I’ve tried it. The reboot command hangs but if you run it in the background (with &) and then kill the zone process and reboot the zone it should come back up:
# zoneadm -z zonename reboot &
# pkill -9 -z zonename
# zoneadm -z zonename reboot