Hi, We have on our server a little bot widget which allows a user to create, modify, boot and pretty much manage his own zones. What we're finding out is that on the rare occasions when the bot is down (administrative or fault), SMF helpfully restarts all our zones because all the zoneadm live in the same CTID as the bot. To fix this I'm inserting a little ctrun wrapper around each "zoneadm boot". What I was aiming for is (almost) the same kind of resilience svc.startd provides for services /it/ manages, but as I look a little bit deeper into how zones are serviced, I don't think there's any such thing. The svc-zones just maked sure zones are found and booted. I check all the zones that are auto-booted, they are orphaned by svc.startd. Processes in zones come and go all the time, and the zoneadmd which is spawned by a zone booting can also come and go.
This leads me to believe that I should not even try to do a ctrun -l contract -r 0 -f ... of any kind but run it as -l none, and sort of let whatever is under the hood of Solaris zones do what it can. That is, I'm just going to do this: # ctrun -l none -f none zoneadm -z mynewzone boot Comparing this method of starting up a zone and the typical way, I am missing the parameter "pgrponly" but since I am the only member of the contract and I have defined no fatal event, I don't think I need it? Although the man page example for the shell uses it. I'm not sure about this. CT