61 Q: 我在安装Solaris 8时启用了DHCP,现在我的主机名是unknown,在启动时工作 站启用DHCP并分配IP,主机名也自动改为unknow。请问怎样改主机名? A: DHCP in Solaris8 1. # touch /etc/dhcp.hme0,hme0:请用相应的网卡设备名; 2. 修改/etc/init.d/network,/etc/init.d/inetsvc 先备份 # cp /etc/init.d/network /etc/init.d/network.org # cp /etc/init.d/inetsvc /etc/init.d/inetsvc.org 修改/etc/init.d/network第278行: "dhcp") #hostname=`/sbin/dhcpinfo Hostname` hostname=`cat /etc/nodename` 修改/etc/init.d/inetsvc第168行: hostname=`/sbin/dhcpinfo Hostname` if [ -z "$hostname" ]; then #hostname="unknown" hostname=`cat /etc/nodename` fi 修改/etc/init.d/inetsvc第82行: if [ "$_INIT_NET_STRATEGY" = "dhcp" ]; then #dnsdomain=`/sbin/dhcpinfo DNSdmain` dnsdomain=`cat /etc/defaultdomain` else dnsdomain= fi if [ -n "$dnsdomain" ]; then #dnsservers=`/sbin/dhcpinfo DNSserv` dnsservers=`cat /etc/dnsservers` 修改/etc/init.d/inetsvc第220行: /usr/bin/mv /tmp/hosts_clear.$$ /tmp/hosts.$$ mydomain=`cat /etc/defaultdomain` echo "${ipaddr}\t${hostname}\t${hostname}.${mydomain}\t# Added by DHCP" >>/tmp/hosts.$$ 在/etc/init.d/inetsvc第一行加入如下语句: if [ -f /etc/dhcp.*[0-9] ]; then _INIT_NET_STRATEGY="dhcp" export _INIT_NET_STRATEGY fi 3.创建/etc/defaultdomain,内容为huawei.com.cn 4.创建/etc/nodename,内容为你的机器名 5.创建/etc/dnsservers:129.9.111.100 10.15.1.3 62 Q: 我用msgget建一消息队列: ret = msgget(IPC_PRIVATE, (0660)|IPC_CREAT); 在一个线程用msgsnd发消息,另一个msgrcv收: ulReturnCode = msgsnd( QueueID, pBufferAddr, 8 ,IPC_NOWAIT); 当消息队列中的消息个数等于40时(每个消息尺寸为8字节),msgsnd函数返 回-1,errno= 11,请问是什么原因。是消息队列满吗?怎样调整系统参数,使 消息队列能大些。 A: msgmap : 100 maximum size of resource map for messages msgmax : 2048 maximum size ,in byte, of a massages msgmnb: 4096 maximum number of bytes on a message queue. msgmni: 50 maximum size of message queue identifiers. msgssi: 8 message segment size. msgtql: 40 maximum number of message headers msgseg: 1024 maximum number of message segments. msgseg 最大为 32k, 其他参数最大值都是 2 billion. 63 Q: license server 如何启动? A: run /opt/SUNWste/bin/lmgrd.ste 可启动 license server 64 Q: 在Solaris8下,如何修改一个目录的大小。安装时系统自动的设置 /export/home目录空间很大,而其他目录空间很小。 A: 1, 备份 /export/home, 2. umount /export/home, 3. 用 format 修改盘片大小, 4. 备份要增大的目录, 5, umount 5. 用 format 增加盘片大小. 6. 重新mount. 65 Q: 请问用什么命令可以确定是否有磁带设备?多谢。 A: 看一下 /dev/rmt 如果是空就没有. . 66 Q: 在solaris 8下安装Forte Developer 6 到达: installing Forte C++ Entep Ed 6/SPARC installing Forte Developer 6 时死掉应如何解决 A: 在安装之前,应当清除所有以前安装时添加进系统的package. 另外,不用缺省目录 /opt , 换一个新建的空目录也有效. 67 Q: Forte c/c++版本可以用在solaris2.6操作系统上吗? A: 可以 68 Q: 在输入用户名后启动很慢,有时甚至进不了,停在启动画面,不知如何解决(我用 过fsck,也不好使,有没有更好的办法)!能否重装操作系统,而不影响现有的已装 软件.谢谢! A: 一般说来, 这与家目录下配置文件有关.新建一个用户试一试. 69 Q: 现在远程维护的解决方式是通过Modem拨号,建立连接,通过我们自己编写的IP 代理转发程序,完成对传输设备远程维护。在PC机上的拨号网络,拨号程序运 行都比较正常,对连接速度,稳定性方面目前使用还算可以。但是在设置Sun工 作站的拨号程序的时候,我常常会遇到一些“奇怪”的问题, 比如Modem不握 手,没有拨号音等。现在我们的拨号设置是自己编写的脚本文件方式。可能对 各种情况考虑的不全面,因此请问是否有相应的软件包(程序)可以帮助我们 机型拨号设置,保证拨号成功? A. 连接失败通常与配置参数有关,由于硬件种类繁多,很难保证一个程序在所有的 硬件环境下都能顺利配置成功.我们只能针对具体情况进行分析.但我们发现,改 变串口的流倥方式经常有助于问题的解决.Sun solstice 中有一个拨号软件据 说比aspppd 更容易使用,我没有用过,或许您愿意试一试? 70 Q: 我这多线程程序,我用ftime得到函数的调用时间,发现在一个线程中,增加一 个printf后,调用时间为5毫秒。去掉这个printf,调用时间却为15毫秒。增加 了一个printf为什么后使该函数的执行更快了? A: ftime 得到系统当前时间,但具体到线程的执行时间,是和系统的调度情况有关 的, 请用调试工具来检查准确的执行时间.
|
| Solaris 常见问题问答4 | 31 Q: 我们的系统需要计算solaris的负载,可以使用uptime输出的load average吗, 如果不用uptime,使用libkstat的load average可以吗? A: 可以. 32 Q: 请问uptime的load average 是如何计算出来的? A: 这个问题满复杂的,我们知道, unix内核里有许多种结构,如 user,proc等, 有的还mount到 文件系统中 ,比如 /proc /dev/kstat /dev/ksysm, uptime, kstat,sar ,vmstat, prstat 等命令都是通过分析这些结构来进行计算的有 一个系统函数叫getloadavg ,uptime 就是直接调用这个函数的,你也可以试试. 33 Q: 如何得到和设置操作系统内核参数。 A: 通常,这些参数在 /etc/system 中配置。 34 Q: 如何得到系统当前动态运行指标,如CPU占有率、IO量、硬盘剩余空间等。 A: 检查的命令则有许多,可用 vmstat 和 sar 命令,还有iostat ,df ,du 用 于检查磁盘的情况。 35 Q: How can I get a Workshop6"s licence? A: get a new one from www.sun.com and install it again. URL is http://www.sun.com/forte/cplusplus/buy.html cp licence-file install_dir/SUNWspro/licencse_dir/sunpro.lic,node 36 Q: 请问能否在一个slice里挂两个文件系统? A: 不可以. 37 Q: 请问修改了/etc/nodename后,UNIX工作站启动不了,该如何是好? A: 单纯修改nodename 不够,还应修改 /etc/net 47 Q: 1.问题描述:Router&LanSwitch的日志管理依赖系统的syslogd进程来实现。 通过设置/etc/syslog.conf文件, 可以控制syslogd把日志存入特定的文本 文件中。然后日志后台就可以周期性的轮询这些文件并导入数据库。按照sun 的man页说明,当向syslogd进程发HUP信号时,进程将重读配置文件 /etc/syslog.conf,然后继续运行。 但在Solaris2.7以下实际的效果是:发 HUP信号将导致syslogd进程不能正常工作(有的试验结果是,信号导致进程 终止),后续设备日志全部丢失。 2.解决建议: 我们的建议是,修改系统的脚本文件/usr/lib/newsyslog,不让其向syslogd 发HUP信号,而是TERM(终止信号),然后重启。此种方法的弊端是,如果用 户主动向进程发HUP信号,仍然存在问题。而且也不能解决syslogd意外退出 的情况。第二种建议是由综合统一做一个检测进程,这样各项目就不会产生 冲突。但仍然存在用户主动向进程发HUP信号使syslogd失效的问题。由上述 可以看出,无论何种方法,都不能彻底解决问题。 A: 问题的产生可能是由于程序员定义了新的日志文件并企图 使用newsyslog 脚 本来处理,这个脚本备份日志文件再发送 HUP信号。newsyslog 脚本在处理系 统文件时不会有问题,很可能是由于syslogd对这些文件做过专门的处理。但 不能认为我们自己的文件也会得到同样的照顾,事实上,这样做通常是危险 的。 我认为建议2 是可行的, 因syslogd打开的是新的日志文件,不会发 生异常。而用户发送的 HUP 命令只是使 syslogd重读 syslog.conf 文件 ,也不会发生意外.为了比较好的定位问题,建议在一个比较干净的系统上进 行测试,在测试之前最好停掉自己的程序, 简化/etc/syslog.conf,我是这样测试的: # /usr/lib/newsyslog # logger -p deamon.notice "12345" # cat /var/adm/messages # kill -HUP `cat /etc/syslog.id` # logger -p deamon.notice "aaaa" # cat /var/adm/messages 结果正常. 48 Q: Solaris 8中,为什么不可以用如下命令给网卡增加逻辑地址? ifconfig hme0:1 xxx.xxx.xxx.xxx up A: Solaris 8 对ifconfig 作了一些改动,在这个命令之前,先执行下面的命令就可 以了: ifconfig hme0:1 plumb 49 Q: 为什么Solaris 中的多个网卡显示的以太网地址都是一样的? A: 缺省情况下,系统使用本机的MAC地址作为各网卡的MAC地址,可以用如下 OpenBoot 命令让系统使用网卡自带的MAC地址. ok setenv local-mac-address? true 50 Q: 如何在一台机器里如何实现用多块网卡容错? A: Solaris8 新增了一个daemon叫mpathd将网卡管理分组管理来完成这样的功能. 原理是给每个网卡分配两个地址,多出的一个逻辑IP地址由mpathd用来检查个网 卡的工作情况.下面一两块网卡为例介绍配置过程,这里两块网卡分别是hme0和 hme1, 1. ifconfig hme0 group test ifconfig hme1 group test 2. ifconfig hme0 addif 19.16.85.21 netmask + broadcast + -failover deprecated up ifconfig hme1 addif 19.16.85.22 netmask + broadcast + -failover deprecated up 3. 检查hme0:1和hme1:1看是否有逻辑IP ifconfig hme0:1 ifconfig hme1:1 这里要注意,给网卡增加的逻辑IP应当与实际分配的IP地址在同一个网段并 且不能与网上其他主机IP地址冲突.
| | |