开启内核引导过程的冗余模式,这样会显示出启动过程中的更多信息;这时我发现,这些系统
服务并不是没有启动,而是启动过程中失败了。
再运行一次服务诊断命令:
========================================================================
# svcs -x -v
========================================================================
这下问题全都暴露出来了,原来是因为我新装的系统中没有建立系统DNS解析配置文档/etc/resolv.conf
导致系统dns client服务启动失败,而dns client则是许多服务的依赖前置服务,包括inetd、
sshd、sendmail等几乎任何的网络服务,假如他启动失败则整个服务树中后继的一系列服务都将
无法自动运行!然后inetd则影响则gss-api等一系列服务,而gss-api这个服务又影响了十多个
后继服务。最后因为一个小小的疏漏--没有手工建立/etc/resolv.conf文档,就导致整个Solaris 10
系统中的任何网络服务启动失败。(Solaris 2系列历史上遗留下来的毛病,即安装过程中您能够
指定 DNS服务器 和 默认路由,但他不会自动保存。必须在安装完成系统之后手工建立和设定
/etc/resolv.conf 和 /etc/defaultrouter 两个文档)
发现原因,问题就好解决,首先建立缺少的文档,然后依次按照dependent树启用一系列服务。
========================================================================
# echo "202.96.209.6">/etc/resolv.conf
# svcadm enable -t svc:/network/dns/client
# svcadm enable -t svc:/network/inetd
# sync && reboot
========================================================================
几条小tips:
1. Solaris 10启动过程中不会在控制台上显示太多信息,能够在eeprom或boot模式下输入
boot -m verbose来开启冗余信息模式,对于系统错误诊断有很大帮助。
2. 假如您的系统安装时选择的是中文环境的话,那么安装完成后,在终端(非X-Window)环境
下可能任何的命令提示和输出信息都是乱码,那么能够用如下命令回到英文的环境:
$ LANG=""
$ export LANG
以上为默认的ksh
% setenv LANG zh
以上为csh
$ LANG=""
以上为bash
3. Solaris 10中采用了新的SMF体系来控制系统服务和守护进程,比原来的SVR4 RC要复杂
多了:_< 类似AIX和Windows NT的体系。 很多原来的rc脚本现在都由SMF/SVC来控制。
SMF的基本体系:
管理命令 svcadm(服务状态管理,启动、停止等)
svcs(服务信息和诊断)
svccfg(服务参数配置)
配置文档 在/etc/svc目录下,似乎使用了sqllite数据库格式,因此只能用svccfg命令
管理
启动 在/etc/inittab中,启动smf::sysinit:/lib/svc/bin/svc.startd一行
然后由svc.startd来替代原来init和rc所作的一系列工作
一些启动脚本 在/lib/svc/method目录下,替代了部分/etc/rc*.d中的启动脚本作用
也能够直接手工运行这些脚本来强制启动某个服务(不根据依赖树关系)
关于SMF,也许过几天再写一篇文章来周详讲一下他的体系吧。
4. 一条有用的命令
# svcs -x -v
能够检查当前系统中的服务状况,并自动诊断出服务出错的原因。
5. 一些能够代替以前/etc/rc*.d/S**的命令:
# svcs
查看当前任何的服务状态,能够使用|管道符重定向作更个性化的查找;如
# svcs |grep online 查看当前运行服务
# svcs |grep offline 查看当前停止服务
# svcs |grep inetd 查看inetd服务状态
# svcadmin enable svc:network/finger
启用一个服务,本例是finger,在原来的rc体系中相当于配置/etc/inetd.conf开启finger
#svcadm disable svc:network/ssh
仅用一个服务,本例中是禁用sshd服务,在原来的rc体系中相当于执行了
mv /etc/rc2.d/S55sshd /etc/rc2.d/x.S55sshd
假如要立即停止或启动服务,那么能够使用svcadm的-t参数:
# svcadm disable -t network/ssh
停止sshd服务,相当于 /etc/init.d/sshd stop
# svcadm enable -t network/ssh
启动sshd服务,相当于 /etc/init.d/sshd start
# svcadm restart network/ssh
重启(停止并启动)sshd服务,相当于 /etc/init.d/sshd stop; /etc/init.d/sshd start
# svcadm refresh network/ssh
刷新sshd(重新读取配置文档),相当于 kill -HUP `cat /var/run/sshd.pid`
6. Solaris 10默认安装配置下是不允许root用户远程通过ssh登录的,这样也许不太方便,那么
能够修改 /etc/ssh/sshd_config 文档中 PermitRootLogin no 一行为yes,然后重新
启动sshd服务。
7. 最后,现在大家安装完成Solaris 10之后,可千万不要在忘记手工建立:
/etc/resolv.conf 和 /etc/defaultrouter
了,现在的后果可不像以前仅仅不能解析DNS那么简单:_< 该死的SMF。
解决了网络服务和sshd的问题,再来看看X-Window和Dtlogin吧。
开始安装过程中,系统是能够很好的识别Vmware的虚拟硬件,并且支持到1024x760x24bpp的
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!




