The zoneadm shutdown c command is used to cleanly shut down a zone. The action is equivalent to running /usr/sbin/init 0 in the zone. If the –r option is also specified, the zone is then rebooted. See Zone Boot Arguments for supported boot options.
The svc:/system/zones service uses the zoneadm shutdown to cleanly shut down zones when the global zone shuts down.
The shutdown subcommand waits until the zone is successfully shut down. If the action doesn't complete within a reasonable amount of time, zoneadm halt can then be used to forcibly halt the zone. See How to Halt a Zone.