The way SMF is dealing with the console is somewhat bizarre, if not for somebody in the know, at least for most sysadmins, I believe.
The default SMF milestone is ‘all’. This obviously includes svc:/system/console-login:default. The “milestone” subcommand of svcadm allows you to temporarily disable all the services that the milestone you want to go to do not depend upon, directly or indirectly. As an example,
#svcadm milestone multi-user-server is not going to have an effect on the cron service because
#svcs -D cron shows that cron is needed for the multi-user milestone, which is itself required for the multi-user-server milestone to be online.
The rarity with the console ( which I am sure is explainable ) is that the console-login service doesn’t appear in the dependency list of any milestone. So going to any milestone with svcadm is going to temporarily disable the console-login service. But then, you don’t have a console, which is not acceptable. That is why init starts a “sulogin” program that asks you to enter the root password to enter into ‘maintenance’ mode. The first time you go to a milestone other than single-user, there is good chance that you will be surprised to see a prompt requiring you to type the root password in a open “console window” !
You may think of Enabling the console-login service again. No chance, the service’s state will be “offline” with reason unknown. The reason is that it cannot co-exist with sulogin. If you issue a nice #pkill sulogin, the console-login will be online and takes care of your console like before.
Liane Praza, of the Sun SMF team, asked why I thought this behaviour was annoying. I tried to explain and am expecting her reply. In the meantime, you can refer to the following links :