`
aol_aog
  • 浏览: 16591 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Solaris 问答集

 
阅读更多
1.Q:Solaris的系统配置文件一般在什么地方?
A:可以查看/etc/system文件,里面有一些solaris启动时默认加载的选项,包括
共享内存大小等的设置。

2.Q:在solaris中,用户默认的Shell在什么文件中规定?
A:可以查看/etc/passwd中,用户默认的shell在这里规定。

3.Q:如果solaris不幸忘记了root密码,如何解决?
A:可以有如下两种情况
1.工作站只有root用户,无其他用户。
2.工作站除了root用户以外,还有其他的用户

1.如果连接了网络,我们可以采用远程缓冲溢出的方法,但是这样的方法不属
于“经典”方法,且有的远程缓冲溢出具有一定的破坏性,不建议使用。还
有一种方法就是采用SUN公司自带的光盘采取引导,建议采取这种方法:
1.bootcdrom-s
2.fsck/dev/dsk/c0t0d0s0(取决于根分区的设备)
3.mount-Fufs/dev/dsk/c0t0d0s0/mnt
4.TERM=ansi;exportTERM
5.编辑/mnt/etcshadow文件,把root对应的口令去掉。
6.重启后的root的口令为空。

2.如果还有普通用户,方法可以采用本地缓冲溢出,这种方法虽然破坏性小,
但是也有损毁硬盘引导区的危险,建议采用“文件连接”错误是获得root权
限,这种方法没有什么危险性。

4.Q:有时候用vi编辑器的时候,显示窗口过大,如何处理?
A:只需要用鼠标拖曳终端窗口,使其缩小,即可解决。

5.Q:共享内存大小如何设置?
A:在system文件的最后一行加入Setshmsys:shminfo_shmmax=XXX
/etc/setshmsys:shminfo_shmmin=XXX
这里的XXX是代表共享内存的大小。单位:字节
共享内存一般为内存的一半
例如内存为512M
设置应为512/2*1024*1000=262144000

6.Q:root用户的配置文件在什么地方?
A:root用户的配置文件和其他用户的配置文件有些不同,它在/etc/profile文件
中规定。

7.Q:SUNsolaris在远程X-winpro下无法以root进行登陆,如何解决?
A:直接以root在终端上登录的时候,执行/etc/default/login脚本。在这个脚本
中限制了在远程终端上不能直接以用户root登录,如果想这样,修改此脚本,
将下面这一行注释掉即可
CONSOLE=/dev/console

8.Q:在solaris下,如何查看网络是否配置成功?
A:可以采用命令Ifconfig-a来查看,如果网卡绑定ip成功,而不是显示0.0.0.0
就证明网卡配置基本无误,主要检查网络介质(网线,RJ45插头...)是否损坏。

9.Q:如果敲错一个命令如何结束它呢?
A:solaris和SCO有少许不一样,solaris可以采用ctrl+C来结束,而不是SCO的
ctrl+Del

10.Q:solaris的联网中,网关如何配置?
A:solaris的网关设置和SCO的设置不一样

SCO:
/etc/gateways
name1gatewayname2metricvalue
所有中间的很长的空均为TAB
Net,host表示路由指向是网络还是主机,net和host是关键字
Name1目的网络名或主机名
Gateway关键字
Name2网关名或网关ip地址
Metric关键字
Value跳数
Passive关键字,表示被动方式,路由器不叫换路由信息
Active关键字,表示主动方式,路由器交换路由信息
External关键字,表示外部方式,其他进程已安装了路由
例如:
net129.9gateways129.6.0.1metric1passive
host129.7.10.21gateway129.6.0.2metric1passive

Solaris
为defautrouter,只需要在里面填入网关。

11.Q:如何在网上安装Solaris?
A:假设SERVERIP为10.11.41.10,hostname为inssvr;CLIENTIP为10.11.41.11
,hostname为inscli。

在SERVER端执行以下步骤
条件:有340M的剩余空间
1.将Solaris2.6的安装盘插入CD-ROM
2.将Solaris2.6CD-ROM的slice0拷贝到硬盘
#cd/cdrom/sol_2_6_sparc_smcc_svr/s0/solaris_2.6/Tools
#./setup_install_server/export/install
3.编辑文件/export/autocfg/sysidcfg,以下是它的内容
#SamplesysidcfgfileforSPARCsystems
system_locale=en_US
timezone=GMT-8
timeserver=10.11.41.10
terminal=dtterm
name_service=NONE
root_password=...(取自/etc/shadow文件)
4.编辑文件/etc/hosts,以下是它的内容
10.11.41.10inssvrloghost
10.11.41.11inscli
5.增加安装客户
#cd/export/install
#./add_install_client-eCLIENT的以太网地址-iCLIENT的IP地址-sinssvr:/export/install-cinssvr:/export/autocfg-pinssvr:/export/autocfginsclisun4u
在CLIENT端的OK提示符下执行
OKbootnet-install
Solaris7forsparc与2.6的区别,7没有默认的sysidcfg和autocfg目录,需要自
己建立,而且OKbootnet即可

12.Q:DHCPinSolaris8?
A: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/dhcpinfoHostname`
hostname=`cat/etc/nodename`
修改/etc/init.d/inetsvc第168行:
hostname=`/sbin/dhcpinfoHostname`
if[-z/"$hostname/"];then
#hostname=/"unknown/"
hostname=`cat/etc/nodename`
fi

修改/etc/init.d/inetsvc第82行:

if[/"$_INIT_NET_STRATEGY/"=/"dhcp/"];then
#dnsdomain=`/sbin/dhcpinfoDNSdmain`
dnsdomain=`cat/etc/defaultdomain`
else
dnsdomain=
fi

if[-n/"$dnsdomain/"];then
#dnsservers=`/sbin/dhcpinfoDNSserv`
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#AddedbyDHCP/">>/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.10010.15.1.3

之所以要修改,究其原因我们的DHCP服务器支持的协议可能比较老,不能返回给
客户端DNSdomain,DNSServer,Nodename;

13.Q:SUN上如何编译动态库?
A:
CC=cc
C++=CC+w
.SUFFIXES:.cpp
.cpp.o:
$(C++)-g-c-Kpic$<
liberrlog.so:ErrLog.o
ld-oliberrlog.so-GErrLog.o

14.Q:在sun工作站上安装solaris软件时没有安装网卡,安装完成后应该修改那些文
件添加网卡?
A:

1.#reboot--r或者okboot-r
2.在1.成功找到你新加的硬件之后,再执行相应的硬件设置命令,对网卡执行:
ifconfighme0[ipmask],其中hme0是你网卡的设备名,可以通过dmesg知
道你的网卡设备名.

15.Q:如何设置DNS?
A:(1)/etc/nsswitch.conf的hosts解析加上nis或/和dns,内容如下
hosts:filesdns
(2)设置到DNS服务器网关于/etc/defaultrouter,内容如下
10.11.43.254
(3)设置DNS服务器的IP地址/etc/resolv.conf,内容如下
nameserver10.15.1.3
nameserver129.9.111.100
domainhuawei.com

16.Q:Ultra60工作站从外挂光驱启动?
A:Ultra60工作站缺省配置是内置光驱,用外挂光驱重新安装Solars时,用boot
cdrom命令则不能从光驱启动,屏幕上打印错误信息:Drivenotfound.
原因如下:由于Ultra60工作站缺省支持内置光驱,cdrom的缺省配置是内置光
驱的物理设备名。当使用外挂光驱时,当使用bootcdrom命令时,cdrom的替
换为内置光驱的物理设备名。这就是不能从光驱启动的原因。

解决办法如下:
(1)stop+a命令

(2)在ok提示符下输入:probe-scsi-all
则出现硬盘、光驱、磁带机等设备的实际物理名。
如:/pci@1f,4000/scsi@3,1
cdrom

(3)在ok提示符下输入:devalias
则出现硬盘、光驱、磁带机等设备的缺省设置。
如:cdrom/pci@1f,4000/scsi@3/disk6,0:f
这是缺省配置,用bootcdorm命令时,cdrom被解释为
/pci@1f,4000/scsi@3/disk6,0:f
而/pci@1f,4000/scsi@3/disk6,0:f指示的是内置光驱的设备名,
因此不能从外挂光驱启动!

(4)在ok提示符下输入:boot/pci@1f,4000/scsi@3,1/disk6,0:f
说明:[boot后的参数参看(2)和(3)中的cdrom的设备名,由两者组合而来
即可正确的从外挂光驱启动。

17.Q:一台SunUltra80工作站安装SunOS5.6失败,请问其原因以及如何避免?
A:硬件环境为Ultra-80/2CPU(450M)/1harddisk(18G)/2GMemory,从网络启动安
装SunOS5.6。安装过程中途中断并出现以下提示:
panic[CPU3]/thread=0x301bde80:CPU3privilegedUEError:AFSR0x0000000080200000
AFAR0x000000007c5e0190SIMMU1302U0302U1301U0301
syningfilesystems...[27[406136done
12535staticandsysmapkernelpages
50dynamickerneldatapages
205kernelpageablepages
0segkmapkernelpages
0segvnkernelpages
0currentuserprocesspages
12790totalpages(12790chunks)

dumpingtovp6145608c,offset:3989467
panic[CPU3]/thread=0x30043e80:panicdumptimeout
DumpAborted
Type/'go/'toresume{3}ok
随后输入‘go/'或者‘boot-r’都无法使系统启动,提示如下:

CannotopenKernel/unix
inputfilename[Kernel/unix]:

只有重新从网络启动。这是由于CPU硬件结构与Solaris系统不兼容造成的,
需要补丁。这个问题不仅仅是在Ultra80的机器上,如果Ultra60使用了SUN的
新推出的高速CPU(400M以上,一般为450M)且操作系统为Solaris2.6或者
Solaris2.5.1,也会出现类似问题。如果工作站使用的是这种高速CPU,在
随新机器一起的附件中会有一本手册:InstallingSolaris2.5.1or
Solaris2.6Softwareon419+MHzSystems,其中详细描述了如何解决这
个问题(在zh-6页)。另外,附件中还有一张补丁光盘,名字叫做:
OperatingEnvironmentInstallationCDMay1999,此光盘专门用于解决
此问题.

18.Q:在solaris上如何进行数据的备份和恢复?
A:备份整个文件系统,也称作完全备份(fulldump);在完全备份的基础上备
份修改过的文件,称作渐进备份(incrementaldump);

ufsdump

ufsdump命令用于备份文件系统,可以完全备份也可以渐进备份。ufsdump命令的格式
为:/usr/sbin/ufsdump[options]dump_devicefiles_to_dump
options包括:
0-9:指定备份的级别。0为最低,即完全备份;9为最高。假设当前备份级别为i,那
么ufsdump命令在执行时将寻找最近一次级别等于i或小于i的备份,将以前备份过后修
改过的文件备份下来。例如,星期一执行了一次级别为2的备份,星期二执行了一次
级别为4的备份,那么当星期三执行级别为3的备份时备份文件中将包括自星期一备份
以来所有修改过或新创建的文件。如果星期三执行级别为4的备份,那么备份文件中将
包括自星期二备份以来所有修改过或新创建的文件。
f:指定备份的设备,例如/dev/rmt/0;
u:更新备份记录(/etc/dumpdates)。使用这一选项后ufsdump将创建或更新
/etc/dumpdates文件,文件内容包括文件系统名、备份级别、和备份时间,例如:
pioneer#ufsdump0uf/tmp/ddd/dev/dsk/c0t0d0s0
DUMP:Writing32Kilobyterecords
DUMP:Dateofthislevel0dump:MonSep0722:37:161998
DUMP:Dateoflastlevel0dump:theepoch
DUMP:Dumping/dev/rdsk/c0t0d0s0(pioneer:/)to/tmp/ddd.
DUMP:Mapping(PassI)[regularfiles]
DUMP:Mapping(PassII)[directories]
DUMP:Estimated25234blocks(12.32MB).
DUMP:Dumping(PassIII)[directories]
DUMP:Dumping(PassIV)[regularfiles]
DUMP:25214blocks(12.31MB)on1volumeat1599KB/sec
DUMP:DUMPISDONE
DUMP:Level0dumponMonSep0722:37:161998
pioneer#more/etc/dumpdates
/dev/rdsk/c0t0d0s00MonSep722:37:161998

备份前的准备工作

重新启动系统到单用户状态,或将要备份的文件系统卸载下来。
通知所有用户该文件系统不可用。
#wall
/export/homewillbeunavailableintwominutes,pleaselogout
Pressctrl-D
对文件系统进行检查(fsck)。

ufsdump

如前例所示。
如果使用渐进的备份方法,最后实现建立备份计划,例如:

SunMonTueWedThuFri
Week1:Full55553
Week2:55553
Week3:55553
Week4:55553

上例中,每个月作一次完全备份,每个周末对每一周的改动作一次备份,每天的备份
只对当天的改动作备份。这样作的目的是节省备份所用的空间。

ufsrestore

ufsrestore用于恢复使用ufsdump命令备份的文件系统。命令格式为:
/usr/lib/fs/ufs/ufsrestoreoptions[arguments][filename...]
options包括:
t:备份列表;
x:只恢复命令行中指定的文件;
r:恢复整个备份;
f:指定备份文件所在的设备或目录;
v:verbosemode,列出备份文件的路径。
例如:
对备份文件进行列表:
pioneer#ufsrestoretvfddd
Verifyvolumeandinitializemaps
Mediablocksizeis126
Extractdirectoriesfromtape
Initializesymboltable.
Dumpdate:MonSep0722:37:161998
Dumpedfrom:theepoch
Level0dumpof/onpioneer:/dev/dsk/c0t0d0s0
Label:none
dir2.
dir3./lost+found
dir5696./usr
dir11392./var
dir5697./export
dir11393./export/home
dir5698./opt
leaf4./bin
dir11394./dev
dir5699./dev/sad
leaf5879./dev/sad/admin
leaf5825./dev/sad/user
leaf11592./dev/be
leaf11496./dev/conslog
...
从备份中恢复指定文件:
pioneer#cd/tmp
pioneer#ufsrestorexvfddd./etc/passwd
Verifyvolumeandinitializemaps
Mediablocksizeis126
Dumpdate:MonSep0722:37:161998
Dumpedfrom:theepoch
Level0dumpof/onpioneer:/dev/dsk/c0t0d0s0
Label:none
Extractdirectoriesfromtape
Initializesymboltable.
Makenode./etc
Extractrequestedfiles
Youhavenotreadanyvolumesyet.
Unlessyouknowwhichvolumeyourfile(s)areonyoushouldstart
withthelastvolumeandworktowardsthefirst.
Specifynextvolume#:1
extractfile./etc/passwd
Addlinks
Setdirectorymode,owner,andtimes.
setowner/modefor/'./'?[yn]n
执行该操作需要指定所要恢复的文件在备份文件中的位置。由于备份文件从卷1开始,
所以可以指定从卷1开始搜索。恢复整个文件系统下例将一个老的文件系统(/opt)移
到一个新的磁盘分区(/dev/rdsk/c0t3d0s5)中。首先,卸载老的文件系统并实施备
份:
#umount/opt
#fsck/opt
#ufsdump0uf/dev/rmt/0/opt
其次,生成新的文件系统,将其安装到一个临时目录(/mnt),并实施恢复:
#newfs/dev/rdsk/c0t3d0s5
#fsck/dev/rdsk/c0t3d0s5
#mount/dev/dsk/c0t3d0s5/mnt
#cd/mnt
#ufsrestorervf/dev/rmt/0
#rmrestoresymtable
最后,卸载新的文件系统,用fsck检查其一致性。
#cd/
umount/mnt
#fsck/dev/rdsk/c0t3d0s5

选择性备份,备份指定的文件和目录;

tar

系统备份:tar-cvf目标文件名/设备名备份文件,例如:
tar-cvfbackup.tar*
命令将当前目录下的所有文件(包括各级子目录)都打包在backup.tar文件中。
tar-cvf/dev/rmt/0*
命令将当前目录下的所有文件(包括各级子目录)都打包到磁带上。查看tar文件的内
容:tartvf目标文件名/设备名,例如:
tar-tvfbackup.tar
tar-tvf/dev/rmt/0
将tar文件中的内容恢复到指定目录中去:tarxvf目标文件名/设备名[目录名],例
如:
tar-xvfbackup.tar/home
tar-xvf/dev/rmt/0/home
如果不指定目录名则表示当前目录。

19.Q:如何在Soraris下面安装ATM网卡?
A:网卡型号:FOREPCA-200EUX/OC3
操作系统:Solaris2.7
工作站:SUNUltra60

一、硬件安装
1、工作站关电后,将网卡妥善安装在一个PCI插槽中;
2、工作站上电,按STOPandA中断bootprocess,到ok提示符;
3、输入命令show-devs,显示系统配置,FORE网卡的device-pathname应出现在
配置列表中,形式可能如下:
/pci@1f,2000/FORE,PCA-200E@2
4、设备提供光口自环测试(medialoopback)和内部自环测试(internalloopback),
供检查设备及安装是否完好。根据经验用内部自环测试即可,方法:
输入命令test/pci@1f,2000/FORE,PCA-200E@2
待出现:pass0说明硬件及安装都正确;
5、输入boot命令,启动系统。
二、软件安装
1、软件安装需要root权限;
2、网卡支撑软件一般是一个.tar文件提供,解开后在其目录下有8个子目录,分
别为:
FORECoreForeThoughtATMCoreSoftware
FOREDrvForeThoughtATMCardDrivers
FORESpansForeThoughtSPANSSignallingSoftware
FOREUniForeThoughtUNISignallingSoftware
FOREclipForeThoughtClassicalIPSoftware
FOREipForeThoughtFOREIPSoftware
FOREmpoaForeThoughtMPOA/LANEmulationSoftware
FORExtiForeThoughtXTIApplicationProgrammingInterface
3、例如.tar文件解开后在/home/FORE下,则该目录下就有上述8个子目录,我们要
用的程序在FOREDrv、FOREip下,但各个模块之间有一定的依赖关系,需要安装的模块
有6个:FORECore、FORESpans、FOREDrv、FOREip、FOREUni、FOREclip。安装过程:

>pkgadd-d/home/FORE
Thefollowingpackagesareavailable:
1FORECoreForeThoughtATMCoreSoftware
.........(sparc)5.1
2FOREDrvForeThoughtATMCardDrivers
.........(sparc)5.1
3FORESpansForeThoughtSPANSSignallingSoftware
.........(sparc)5.1
4FOREUniForeThoughtUNISignallingSoftware
.........(sparc)5.1
5FOREclipForeThoughtClassicalIPSoftware
.........(sparc)5.1
6FOREipForeThoughtFOREIPSoftware
.........(sparc)5.1
7FOREmpoaForeThoughtMPOA/LANEmulationSoftware
.........(sparc)5.1
8FORExtiForeThoughtXTIApplicationProgrammingInterface

Selectpackage(s)youwishtoprocess(or/'all/'toprocessallpackages).
(default:all)[?,??,q]:
选择要安装的模块,根据提示安装。
4、安装后的软件在/opt/FOREatm/bin(使用的配置命令所在目录)
/conf
/examples
/include
/lib
/man
三、网卡配置
1、网络接口名配置
>configure_atm
选择配置ip模块,得到一个ipinterface名,默认为fa0。重启工作站,可以看到在
/dev下有fa0接口,而网卡的设备名为fatm0。
2、>adinfofatm0可查询设备硬件信息
>adconfigfatm0可进行设备配置
>adstatfatm0可查询设备状态
这三个命令较少用到。
3、接口ip地址配置
ifconfigfa0netmaskbroadcastup
4、IPOA配置
atmarp-shostnamedevicevpivciaalencapsulation(outgoingPVC配置)
atmarp-ldevicevpivciaalencapsulation(incomingPVC配置)
例:分配给工作站的pvc为vpi0vci150
工作站的IPOA地址为200.200.200.101
MUSA设备的IPOA地址为201.200.200.100
AAL类型为5
encapsulation为llc_routed
>atmarp-s201.200.200.100fa001505llc_routed
>atmarp-lfa001505llc_routed
[在MUSA设备上要做:addnms、actnms、addroute、addatmarp、addipaccess]
>ping200.200.200.101如果ping通,则已配置成功。

20.Q:在哪里能得到有关Solaris的较全面的文档?
A:http://docs.sun.com

21.Q:请教sun小型机上的路由跟踪命令是什么?(HP上是traceroute)谢谢!
A:这个命令也是traceroute.在/usr/sbin目录下.

22.Q:一个GUI程序,在换个不同的SUN环境时界面就变的难看了,主要是字体影响
(还有其它影响么?)SUN的字体都有哪些,如
-sun-screen-bold-r-normal--14-140-72-72-m-90-iso8859-1
都有哪些可选?
A:Ifafontcannotbefoundinthesystem,thesystemwillselect
anotherfontwhichmightbenotsoelegentasyouexpect.The
correctwayistoinsurethefontyouwantiscorrectlyinstalledin
system.Insolarisanswerbook,thereisaperfectreferencetalking
aboutthefontadministration/"fontadministration/"inSystem
AdministrationVol1.Youcangetsolarisanswerbookbyaccessing
sunlibrary.huawei.com.ChenZhexue(4924)isresponsibleformaintain.
it.

23Q:Solaris启动过程是如何的?启动的时候读那些文件启动一些服务比如我要在系
统启动的时候自动启动Apache(httpd)服务,应该在哪个文件里面配?
A:Solaris的启动是典型的ATTUNIX启动过程,在普通的UNIX书记和SUN公司的文
档中都有详细的介绍,这里就不详谈了.要点室内核引导后启动init进程,init
按照/etc/inittab的控制加载各子系统,一般是执行/etc/rc*之类的脚本.
这些脚本再执行/etc/rc*.d/下的脚本,其中/etc/rc2.d/S72inetsvc运行
inetd,该后台进程根据/etc/inetd.conf控制网络服务,所以要自动启动
Apache,需要在inetd.conf中修改或增加80端口的启动命令。(如果不是用80
,还要修改/etc/services文件)

24Q:有一个问题要请教一下,谢谢!
一台SUN服务器,更换IP地址。
原来地址为10.11.43.137,现在更换为10.108.22.247

我的操作步骤如下:
1:修改/etc/hosts文件,修改后的文件内容如下:
127.0.0.1localhost
10.108.22.247westsnowloghostSYBASE
10.109.22.247eastsnow
/etc/hostname.hme0文件内容:
westsnow
/etc/hostname.hme0:1文件内容:
eastsnow
2:修改/etc/netmasks文件,修改后的文件内容如下:
10.0.0.0255.255.0.0
3:修改网关/etc/defaultrouter文件,修改后的文件内容如下:
10.108.22.1

按照上面步骤修改完后REBOOT机器,启动过程中没有任何异常,但是机器启动
后和别的机器连不上,而且连网关都PING不通,请问是什么原因?谢谢!
A:/etc/hostname.hme0:1中应当写你想用的IP地址,而不是机器名.如果只改IP
地址,就不需要这个文件.

25Q:UTF-8和US-ASCII之间的区别在那里?请举例说明。
A:UTF-8包括US-ASCII和多字节编码。与普通的多字节编码不同,UTF-8的字节
长度不固定,对于ASCII,字节长度为1,对于中文,阿拉伯文等,可以是2,3或更
多字节,这样能有效节省存储空间.它还与很多传统编码标准兼容,所以很受欢
迎.

26Q:如何在脚本里实现修改用户口令?
A:由于修改口令需要从终端读取用户口令,所以不能用重定向的办法,但可以采用
expect之类的工具,这些工具建立一个伪终端来模拟输入,所以起到用脚本控
制终端的效果.

27Q:我在用EXCEED连到工作站时,开了一个root权限term,网络突然中断,请问如
何能够kill该term的进程?
A:用xkill连dtterm一起杀掉。在桌面上是可以的,在exceed中不知是否可以。

28Q:在Solaris下可用什么命令查看systemsoftwareinfo?
A:用/usr/bin/pkginfo.
或者/usr/bin/prodreg,有图形界面将注册过的产品显示成树的形状.

29Q:请问:在SOLARIS8中,用什么命令看portid?
A:我曾就这个问题问过不少人,有的说fuser可以做,但我查fuser的手册
没有见到相关选项。lsof是一个比较理想的工具,可以从sunfreeware.com下
载。还有一个简单的办法是这样的:
/usr/proc/bin/pfiles/proc/*>result.txt
在到result.txt中搜索相应socketport.也可以自己用awk过滤pfiles的
结果

30Q:使用FTP时,不能以root用户登录系统,应修改什么配置文件?
A:看一下/etc/ftpusers,如果有root,删掉就可以了。

31Q:我们的系统需要计算solaris的负载,可以使用uptime输出的loadaverage吗,
如果不用uptime,使用libkstat的loadaverage可以吗?
A:可以.

32Q:请问uptime的loadaverage是如何计算出来的?
A:这个问题满复杂的,我们知道,unix内核里有许多种结构,如user,proc等,
有的还mount到文件系统中,比如/proc/dev/kstat/dev/ksysm,uptime,
kstat,sar,vmstat,prstat等命令都是通过分析这些结构来进行计算的有
一个系统函数叫getloadavg,uptime就是直接调用这个函数的,你也可以试试.

33Q:如何得到和设置操作系统内核参数。
A:通常,这些参数在/etc/system中配置。

34Q:如何得到系统当前动态运行指标,如CPU占有率、IO量、硬盘剩余空间等。
A:检查的命令则有许多,可用vmstat和sar命令,还有iostat,df,du用
于检查磁盘的情况。

35Q:HowcanIgetaWorkshop6/'slicence?
A:getanewonefromwww.sun.comandinstallitagain.
URLishttp://www.sun.com/forte/cplusplus/buy.html
cplicence-fileinstall_dir/SUNWspro/licencse_dir/sunpro.lic,node

36Q:请问能否在一个slice里挂两个文件系统?
A:不可以.

37Q:请问修改了/etc/nodename后,UNIX工作站启动不了,该如何是好?
A:单纯修改nodename不够,还应修改/etc/net/*/hosts

38Q:Solaris的/usr/lib/dmi/snmpXdmid是干什么用的?
A:SunSolsticeEnterpriseSNMP-DMImappersubagent
mansnmpXdmid可得.

39Q:我的工作站上没有光驱,想通过远程安装,可否?
A:可以,有两种方式:
1。将solaris光盘内容以ftp上传,本地安装
2。做一个installserver,远程直接安装。
3.用remote光驱安装

(在remote机器)
#ps-ef|grepnfsd
#mkdir/dummy
#vi/etc/dfs/dfstab(share-Fnfs-oro/dummy)
#ejectcdrom0
#chmod644/etc/rmmount.conf
#vi/etc/rmmount(sharecdrom*)
#chmod444/etc/rmmount.conf
#(LoadaCD.)share
-/dummyro/"/"
-/cdrom/sol_7_sparc/s5ro/"/"

(在本地)
$showmount-estarbug
#mount-Fnfs-orostarbug:/cdrom/sol_8_sparc/cdrom
$ls/cdrom
$


40Q:我们想了解一下SUN公司年机器在并行程序运算方面的能力和相应的平台。
A:您知道,SUN公司在SMP技术上居于领导地位,所设计的体系结构具有良好的可
扩展性。只对硬件升级,不改动代码,往往就可以得到接近线性增长的性能,
如果有开发工具的帮助,会取得更好的效果,sun公司提供的ForteC/C++
workshop包含许多工具帮助开发者分析软件性能病进行优化,Solaris也包含专
门的库函数以提高计算效率,SUN公司有一本白皮书专门介绍高性能计算您可
以从docs.sun.com得到.书的名字叫:UltraConputing:HowtoAchievePeak
PerformancefromSolarisApplications..

41Q:我在/etc/skel/local.profile作的环境变量的修改但没有在新增用户时候得到
验证,为什么?这不是一个模板吗?(用EXIT退出窗口,再用新用户登录)
A:如果是从终端登录,.profile会起作用,但如果从CDE登录,则系统执行
.dtprofile,要想执行.profile,还要修改.dtprofile一般情况下,如果想设
置一个环境变量使其对所有用户生效,可以修改/etc/profile

42Q:/etc/system文件中的namespace指的是什么,与Modules有何关系?system文
件中哪些参数将对机器性能有较大影响?
A:所有的手册都警告说修改system文件应当慎重,事实上,也只有在安装数据库,
增加新的设备时,才有可能需要修改此文件.所改的参数,也就是你附件中改过的
那几个线程数,信号量之类的.修改参数值,会影响整个系统的开销,因为这些值
所涉及的空间分配是在系统启动时进行的namespace用于对modules分类,说明
中指出了目前支持的几种namespace,用户不能增加新的种类.

43Q:IamaprogramerworkwithSUNC++.CanIuseSTL(standtemplate
library)inprogram.Ican/'tfindanyhelpinSUNC++/'s
document.Thankyou.
A:Sun的C/C++WorkShop中的C++类库好像包含STL,可以参考一下.
docs.sun.com上有完整的文档,可以参考一下.

44Q:原来的系统中/usr与/在同一个硬盘分区上,由于安装了许多软件,此分区已满
,现在系统增加了硬盘,如何将/usr目录挪到新的硬盘上?
A:1.在新的硬盘上将文件系统建好,
2.mv/usr/usr.bak
3.mkdir/usr
4.mountnewdriverpath/usr
5.cp-r/usr.bak/usr
6.修改/etc/vfstab文件.

45Q:运行下面这段程序并用vmstat观察内存的使用情况:
intmain(){
int*p[100];
intc;
printf(/"beforenew!/");
c=getc(stdin);
for(inti=0;i<100;i++)
p[i]=(int*)malloc(sizeof(int)*32000);
printf(/"afternew!/");
//1.....
c=getc(stdin);
for(inti=0;i<100;i++)
free((void*)p[i]);
printf(/"afterdelete!/");
//2......
c=getc(stdin);
return0;
}
发现在2处系统的空闲内存块并没有增加,free调用到底有没有释放内存?
A:malloc调用引起进程堆空间增长,但free调用不会导致该堆空间立即缩小,
系统只是简单记录这一变化,就继续运行程序,只有系统出现内存短缺时,
系统才收集这些内存块重新分配,这样实现是为了减少系统开销,提高效率.

46Q:请问在kstat的输出中,类似avenrun_15min这种内核动态参数有没有介绍材料?
A:通常,kstat输出的是内核模块中的一些链表或数组,按照SUN公司的文档,这些
输出结果是自解释型的,根据他们的名字就可以猜到其含义.但实际上并不是这
样.这些链表中包含的结构是在下的一些头文件中定义的,比如
kmem_cache模块的结构由kmem_impl.h定义,hme模块的结构由hme.h定义,等等.
翻看这些头文件,可以得到稍微详细一点的资料.参数名字通常与某结构的成员
变量同名,头文件中由简单的注释指出其作用.比如:hme模块输出中包含如下字
段:
brdcstrcv1094670
我们就可以查hme.h,hme.h中有一个很大的结构:hme,其中有:
uint32_thme_brdcstrcv;/*#broadcastpacketsreceived*/


47Q: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-pdeamon.notice/"12345/"
#cat/var/adm/messages

#kill-HUP`cat/etc/syslog.id`
#logger-pdeamon.notice/"aaaa/"
#cat/var/adm/messages

结果正常.

48Q:Solaris8中,为什么不可以用如下命令给网卡增加逻辑地址?
ifconfighme0:1xxx.xxx.xxx.xxxup
A:Solaris8对ifconfig作了一些改动,在这个命令之前,先执行下面的命令就可
以了:ifconfighme0:1plumb

49Q:为什么Solaris中的多个网卡显示的以太网地址都是一样的?
A:缺省情况下,系统使用本机的MAC地址作为各网卡的MAC地址,可以用如下
OpenBoot命令让系统使用网卡自带的MAC地址.
oksetenvlocal-mac-address?true

50Q:如何在一台机器里如何实现用多块网卡容错?
A:Solaris8新增了一个daemon叫mpathd将网卡管理分组管理来完成这样的功能.
原理是给每个网卡分配两个地址,多出的一个逻辑IP地址由mpathd用来检查个网
卡的工作情况.下面一两块网卡为例介绍配置过程,这里两块网卡分别是hme0和
hme1,
1.ifconfighme0grouptest
ifconfighme1grouptest
2.ifconfighme0addif19.16.85.21netmask+broadcast+-failoverdeprecatedup
ifconfighme1addif19.16.85.22netmask+broadcast+-failoverdeprecatedup
3.检查hme0:1和hme1:1看是否有逻辑IP
ifconfighme0:1
ifconfighme1:1
这里要注意,给网卡增加的逻辑IP应当与实际分配的IP地址在同一个网段并
且不能与网上其他主机IP地址冲突.

51Q:一个进程里最多可以打开多少文件?
A:操作系统为每个进程维护一个所打开文件的数组,进程能够打开的文件与此数组
的大小有关.此数组的大小由两个系统变量限制:rlim_fd_max,rlim_fd_cur,
这两个变量可以用limit或ulimit命令察看和修改,要扩大rlim_fd_max需要
root权限,rlim_fd_cur不能超过rlim_fd_max.编程时则有库函数getrlimit
和setrlimit可以使用.另外一种改法是在/etc/system文件中修改.如果是
调用stdio函数打开文件,则还有另外一种限制,32位内核Solaris的FILE结构
中的文件句柄是一个字节,所以同时打开文件的上限是256

52Q:如何改变登录CDE时的语言环境?
A:修改/usr/dt/config/Xconfig文件中的变量Dtlogin*language即可.

53Q:如何防止用户通过CDE环境中的suspend菜单关闭计算机?
A:修改/usr/openwin/bin/sys-suspend的执行权限就可以了.

54Q:我安装完solaris5.7之后(安装时选择简体中文),运行C语言编译器cc不成功
,提示“languageoptionalsoftwarepackagenotinstalled.”。请问这是
怎么回事,该如何解决?
A:Solaris本身带有adb,mdb,make工具,但不带C语言编译器.若要使用需要单独购
买软件包及license.

55Q:想修改ROOT的缺省PATH,在哪改?不要告诉我LOCAL.PROFILE,不管用.
A:如果以root用户身份登录或者用su-命令进行切换,则修改home目录下
.profile是管用的.如果是简单的用su进行切换,则系统保留除PATH之外
的所有环境变量,PATH被设为/etc/default/su中的SUPATH,缺省时为
/usr/sbin:/usr/bin

56Q:问一下,现在在Solaris下有什么比较好的测试程序语句以及条件覆盖率的工具
A:prof和gprof都有.如果您使用workshop或者Forte6.0,则其中有
performenceanalysistools可以使用.

57Q:怎么样让系统启动时就自动在一个网卡上绑定两个IP地址
A:创建文件/etc/hostname.hme0:1,其中写上第二个ip地址.

58Q:Sunsolaris7系统中有一下几种SHELL,sh,csh,ksh,另外还有一个jsh.
我的问题是:jsh是什麽SHELL?另外有bashSHELL吗?
A:jsh就是sh,只不过是激活了jobcontrol模式.但现在sh本身就有job
control功能,所以只用sh就可以了.bash是sh的增强,如果你的系统没
有这个shell,可以到www.sunfreeware.com下载.
ls/bin/*sh可以看到系统所有存在的shell.

59Q:我的光驱无法读取光盘?且总是显示设备忙,如何搞定?mount显示没有被
mount.
A:查找进程vold并将其杀死,就可以手工打开光驱.

60Q:如何将root用户的shell改掉,我知道一般用户可在admintool下修改,但root
用户不能。
A:1.chmod666/etc/passwd(一定要让普通用户有些权限,切记!)
2.vi/etc/passwd(最后一个字段试root的shell,要确保该程序存在方可改
掉它.

61Q:我在安装Solaris8时启用了DHCP,现在我的主机名是unknown,在启动时工作
站启用DHCP并分配IP,主机名也自动改为unknow。请问怎样改主机名?
A:DHCPinSolaris8
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/dhcpinfoHostname`
hostname=`cat/etc/nodename`
修改/etc/init.d/inetsvc第168行:
hostname=`/sbin/dhcpinfoHostname`
if[-z/"$hostname/"];then
#hostname=/"unknown/"
hostname=`cat/etc/nodename`
fi
修改/etc/init.d/inetsvc第82行:
if[/"$_INIT_NET_STRATEGY/"=/"dhcp/"];then
#dnsdomain=`/sbin/dhcpinfoDNSdmain`
dnsdomain=`cat/etc/defaultdomain`
else
dnsdomain=
fi
if[-n/"$dnsdomain/"];then
#dnsservers=`/sbin/dhcpinfoDNSserv`
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#AddedbyDHCP/">>/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.10010.15.1.3

62Q:我用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:100maximumsizeofresourcemapformessages
msgmax:2048maximumsize,inbyte,ofamassages
msgmnb:4096maximumnumberofbytesonamessagequeue.
msgmni:50maximumsizeofmessagequeueidentifiers.
msgssi:8messagesegmentsize.
msgtql:40maximumnumberofmessageheaders
msgseg:1024maximumnumberofmessagesegments.

msgseg最大为32k,其他参数最大值都是2billion.

63Q:licenseserver如何启动?
A:run/opt/SUNWste/bin/lmgrd.ste可启动licenseserver

64Q:在Solaris8下,如何修改一个目录的大小。安装时系统自动的设置
/export/home目录空间很大,而其他目录空间很小。
A:1,备份/export/home,
2.umount/export/home,
3.用format修改盘片大小,
4.备份要增大的目录,
5,umount
5.用format增加盘片大小.
6.重新mount.

65Q:请问用什么命令可以确定是否有磁带设备?多谢。
A:看一下/dev/rmt如果是空就没有.
.
66Q:在solaris8下安装ForteDeveloper6到达:
installingForteC++EntepEd6/SPARC
installingForteDeveloper6
时死掉应如何解决
A:在安装之前,应当清除所有以前安装时添加进系统的package.
另外,不用缺省目录/opt,换一个新建的空目录也有效.

67Q:Fortec/c++版本可以用在solaris2.6操作系统上吗?
A:可以

68Q:在输入用户名后启动很慢,有时甚至进不了,停在启动画面,不知如何解决(我用
过fsck,也不好使,有没有更好的办法)!能否重装操作系统,而不影响现有的已装
软件.谢谢!
A:一般说来,这与家目录下配置文件有关.新建一个用户试一试.

69Q:现在远程维护的解决方式是通过Modem拨号,建立连接,通过我们自己编写的IP
代理转发程序,完成对传输设备远程维护。在PC机上的拨号网络,拨号程序运
行都比较正常,对连接速度,稳定性方面目前使用还算可以。但是在设置Sun工
作站的拨号程序的时候,我常常会遇到一些“奇怪”的问题,比如Modem不握
手,没有拨号音等。现在我们的拨号设置是自己编写的脚本文件方式。可能对
各种情况考虑的不全面,因此请问是否有相应的软件包(程序)可以帮助我们
机型拨号设置,保证拨号成功?
A.连接失败通常与配置参数有关,由于硬件种类繁多,很难保证一个程序在所有的
硬件环境下都能顺利配置成功.我们只能针对具体情况进行分析.但我们发现,改
变串口的流倥方式经常有助于问题的解决.Sunsolstice中有一个拨号软件据
说比aspppd更容易使用,我没有用过,或许您愿意试一试?

70Q:我这多线程程序,我用ftime得到函数的调用时间,发现在一个线程中,增加一
个printf后,调用时间为5毫秒。去掉这个printf,调用时间却为15毫秒。增加
了一个printf为什么后使该函数的执行更快了?
A:ftime得到系统当前时间,但具体到线程的执行时间,是和系统的调度情况有关
的,请用调试工具来检查准确的执行时间.

71Q:我们的技术支持人员遇到一个问题,向您请教:在安装时没有选择安装网络,
现在需要安装网络,怎样增加一个interface。目前只有lo0,没有hme0。
A:在/etc下touch一个空文件hostname.hme0,用boot-r命令重起.

72Q:在SunUltra5工作站(安装SOLARIS2.6),每次开机时,都出现以下问题:
Restoringthesystem.PleaseWait...cpr_read_bitmap:Can/'t
cpr_allocbitmap0
Can/'treadstatefilebitmap,pleasereboot
Programterminated
{0}OK

每次开机都需要boot才能进入。
请问如何解决?
A:首先,在ok状态下检查boot-file参数:
printenvboot-file
如果是boot-file=-Fcprboot之类,用如下命令:
set-defaultboot-file
再检查一下.应该是空才对.
如果不是,则需要设置:
setenvboot-file-Fufsboot
重新启动.

73Q:经实验,两台Sun工作站之间通过网络发Syslog日志,也不支持汉字,该问题可
能是syslogd的问题。
A:估计是由于syslogd在望上传输时丢掉了字节的最高位.

74Q:如果需要ID:105181-15的patch,请问ID:105181-19可以代替吗?ID毫最好两位
是不是patch的版本号,如果是版本号有没有前项兼容性?
A:可以,后两位表示同一patch的版本号.

75Q:以下代码在ForteC++下导致编译错误,请问如何解决?

template
voidtestimpl(inti1,inti2,p1*n1=0,p2*n2=0)
{
p1*pReq=newp1;
p2*pRsp=newp2;
}
voidtest()
{
inti=0;
intj=0;
testimpl(i,j);
}
A:请下载新的patch更新ForteC++

76Q:请问:如何设置工作站的最大客户端数?现有一台测试用机,使用人较多,经
常出现“无法得到pty”的提示。
A:在/etc/system,可以用参数maxusers设置,最大2048,如果这里没有设置,默
认为与系统内存容量相同(以M记,最大为1024),

77Q:Iinstallvisibrokerintomysolaris2.7.
WhenIexecuteaexampleprogram,itcannotexecuteandtellme:
ld.so.1:Server:致命的:liborb64r_so:打开失败:无此文件或目录
被杀掉

(Serverismyprogram)
Canyoutellmehowtosettleit?

A:youshouldsetthisenvirnmentvariable:LD_LIBRARY_PATH

78Q:贵处有无磁带机的使用手册或指导说明?
A:answerbook中系统管理员手册I有使用说明.
answerbook的文档不是html格式,需要一个服务器程序转换,察看本机http进
程看有没有下面这个:

#ps-ef|grephttp
#/usr/lib/ab2/dweb/sunos5/bin/dwhttpd/usr/lib/ab2/dweb/data

79Q:在solaris2.5.1上把系统时间改为2004年,无问题,然后把时间再改回
来后,整个UNIX死机,请SUN工程师答复.具体操作为:将操作系统时间设为
2004年3月1日,然后再将操作系统时间改回当前的时间,则系统的cpu资源被两个
进程dtwm,dtfile严重占用,XWindow反应非常缓慢,在低配置的系统上导致系统
不可操作.同时显示/"Warning:selectedfailed;errorcode22.
A:在窗口环境下或多用户模式下来回切换时间,会导致不可预测的结果,所以,
如果当真要执行此类操作,请在单用户模式下进行.

80Q:shell文件中如何从文件中读参数?
A:catyourfile`

81Q:如何分析网络负载,在SUN上面有没有相应的工具
A:netstat-i

82Q:请问目前SUNE250,E450,E3500支持的CPU主频和缓存分别是多少?您能将这
些配置列表发给我吗?
A:docs.sun.com有硬件的answerbook,可以参考一下。
现在支持的CPU到400M,480M产品已有.butstillhavenotreleased

83Q:mt-f/dev/rmt/0有个参数:retension中文为“拉紧”,在磁带操作中具体
做什么?
A:themanpageofthiscommandsaiditclearly:
Rewindthecartridgetapecompletely,thenwindit
forwardtotheendofthereelandbacktobeginning-
of-tapetosmoothouttapetension.
so,itisnot拉紧,but放松instead.

84Q:具体问题是:有一个进程不停的向该文件增加内容,同时另外一个进程建立了
与该文件的管道,从该文件中读取一行记录进行处理。然后删除该行记录。因
此需要保持该文件i-node不能改变,否则,向该文件写的进程就不能将信息写
入该文件了。有没有解决方法,请指教。
A:Idon/'tknowifIhaveunderstoodyou:
Ifyouwantsavethisfileforlateruse,youshouldnotremoveits/'
content,ifyoudon/'tneedthesecontent,youdon/'tneedthisfileas
well,youcanusepipeonly,orotherinterprocesscommunication
methods.

85Q:我用dos2unix转换一文件,却不成功,提示信息如下:(我用PC机通过rexec远
程登陆的)
$dos2unixfilename1filename2
couldnotopen/dev/kbdtogetkeyboardtypeUSkeyboardassumed
couldnotgetkeyboardtyepUSkeyboardassumed

请问此问题是怎麽回事?如何解决?
A:权限问题,检查一下/dev/kbd读写权限

86Q:我希望在一台ultra机器为以下网络配置路由
子网:10.1.0.0
掩码:255.255.0.0
网关:10.220.10.113
应该如何配置?
用以下命令可以吗?如果永久配置需要修改那些文件?
%routeadd10.1.0.010.220.10.113
A:no,trythiscommond:
#routeadddefault10.220.10.113

87Q:有个patch107311-09,能解决CC4.2不能处理#pragmapack()的问题吗?
A:therightpatchis104631,butyoushouldaddallrelatedpatch
toavoidotherproblem,findthemat:sunsolve.sun.com

88Q:在CSH下我输入以下命令?
$setenvIWAVE/'pwd/'
$echo$IWAVE
结果显示为:pwd
在我的理解中应该是将pwd的输出(如/tmp)赋值给变量IWAVE,所以我想象的
输出是/tmp
A:use`instead/'apparently,theyaredifferent.readsomeunixbooks
forreference

89Q:为什么有时普通用户不能登录CDE?
A:这个错误可能是由于CDE的不正确设置造成的。在每一个用户的home目录下有一
个.dt子目录.在此目录下有一个errorlog文件记录了CDE登录失败的原因.查
看此文件可以找到失败的原因.一个可行的方法是:使用root登录并且删除对
应用户home目录下的.dt目录,同时可以删除/.dtprofile文件,然后使用
用户口令登录即可.外检查/usr/dt/bin/dtsessoin的使用权限.正确的权限应
当是-r-sr-xr-x

90Q:关于Solaris8上DHCP的配置问题安装Solaris8后,进程dhcpagent的CPU占用率一
直都超过88%,请问有什么方法可以解决.谢谢.
A:Isolvethisprogrambygoingtothefieldsit.
Theupdateperiodparametercannotbesetlongerthan2weeksinthe
DHCPserverside.

91Q(1)能否在Ultra60上只安装64位的Solaris8?
(2)Solaris8安装在Ultra60上,内核是32位还是64位?
(3)在其上安装的Oracle8是安装的32位版本还是64位版本?
A:Solaris8的内核是64位的,但是,它同时带有32位程序的解释器,也就是说32位
的程序也可以在Solaris8上面运行。事实上Solaris8上面有一些系统命令就是
32位的程序,如link等。所有的Solaris8都是64位的,但是都带有32位的解释
器。(就现在的情况而言,32位的解释器是必须的)。在Solairs8上面运行
的应用程序可以是64位,也可以是32位的,包括Oracle8在内

92Q:很感谢你的答复。原来不能创建用户的原因应该是文件系统已满,我删除了一
些用户账号后,创建正常。现在的问题是c0d0t0s0文件系统的容量太小,现在
已经达到100%,如何扩展这个文件系统,是否只有重装系统这一个办法?
A:在系统安装时,各个分区划分的有些不太合理。/目录和/usr太小
/export/home和/tmp太大。实际上在安装时,比较合理的办法是只设置/和
/tmp,/tmp最多500M即可。然后在/上面建立/usr,/opt和/export/home。
现在补救的办法是利用软link的办法:首先将一些在/或/usr中不太是系统直接
使用的目录(一定不可以包含/usr/sbin,/sbin,/etc,等等)转移到有空间的分
区上面,然后使用ln建立软连接。关于ln的使用可以man.这种办法是不得已而
为之。不是很好把握,搞不好就会死机,并且启动不起来。所以在进行此项活
动时,首先要备份数据,以免发生以上情况时丢失。如果您在下午下班的时间
可以抽出一点时间,最好还是将系统重新安装一遍的好。因为,每一个目录都
有一定的用意,一些软件的安装不是地方会让人感到很别扭。而使用软连接又
会降低系统的运行速度。

93Q:求助--请教一个多线程编程问题。关于我们发现的问题具体现象如下:
函数void*A(void*pInput)
{
charszBuf[30000];//thisbuffermaybelargerthan30,000
...
...
}
在多线程程序中,该函数在main中运行(此时相当于在主线程中运行)正常。
如果使用pthread_create创建一个线程,以A作为线程入口函数,用内存测试工
具purify可以观察到该线程运行过程中出现BeyondStackRead、BeyondStack
Write错误。如果把szBuf改为堆中分配的内存,则无此问题。据此,我们判断
是线程的栈空间溢出造成该问题。按资料描述,主线程的缺省栈空间大小为8M
,子线程缺省栈空间为2M;我们使用pthread_attr_setstack函数将子线程的栈
空间设置为8M,但仍未解决问题。后又将线程属性设置为
PTHREAD_SCOPE_SYSTEM,问题仍然存在。函数A以静态库方式由第三方提供,
我们现需要使之在一个子线程中运行,因此希望能够提供主线程与子线程差异
的资料,除堆栈空间、调度方式外,是否还有其他差别,造成以上错误的发生
A:Infact,thereisnoproblemintheprogram.Ithinkthereisabug
intheirdebugtool:purify.Youcanusedbxtodebugyourprogram.

94Q:请问一块硬盘上可以有两个Solaris分区吗?在一块硬盘上分了两个solaris分
区,一个是active的系统安装分区,另一个是后来用fdisk创建的,请问怎样把
第二个分区加入到solaris系统中使用。谢谢。
A:Yes,Therecanbeuptosixpartitionsinadisk.youcanseethe
partitionusingutilityformat.Commandlist:
#format
Thenyouwillseethedisksinstalledinyousystem.thenselectthe
disksyouareinterestedin.thenprint/"partition/"andthen/"print/"
toseethepartitioninformation.Thepartitionyouwanttoaddto
thesystemcanbeidentifiedasc#t#d#s#.Makesurethemountpoint(
aemptydirectoryinfilesystem).suchas/disk1.thenrunthe
command:
#mount/dev/dsk/c#t#d#s#/disk1

runthecommand
#df-k
toverifytheslice(partition)isproperlyinstalled.
95Q:请问在Solaris2.7上,可以动态改变分区大小吗?我的工作站划分分区不合理,
根分区太小,已经满了,可以使用工具动态改变吗?
A:No,Ifyouwanttomodifyit,thewholediskdatawillbelost.
Infact,Ithinkithightimeforyoutore-instalthesolaris
system.Inthenewinstallation.Youreallyneedjusttwopartitions
swapandroot.Leavenomorethan1Gtoswappartitionandallthe
lefttoroot.Don/'tforgettobackupallyoudatabeforere-installation.

96Q:用CC编译器如何实现结构成员按字节对齐,类似于其他编译器的#pragmapack(1)
功能。
A:Itisastandardcompilationoption(#pragmapack).Itisalso
supportedinSolarisC.YoucangetdocumentsaboutSCoptionsfrom
http://sunlibrayunderworkshopdirectory.

97Q:为什么SUN的本地界面有时候会出现死掉的情况,此时kill掉用户的dtsession
是否就可以恢复正常。如不能恢复正常还需要做那些操作。
A:Inmyexperince,theinterfacedying,maybecausedbyother
applicationotherthandtsession.Youshoulddeterminewhich
program/'sinterfacecausestheinterfacedying.Thissituationisnot
oftenhappens,andmostofthemhappenedwhenyouaremanipulatinga
program/'sinterfacebymouse.Whenithappen,loginthesystemfrom
networkas/"root/"ortheaccountwhichcausethedying,killthe
program.

98Q:系统不能启动,任何二级目录都没有了,但用户下,所有命令都不能用,怎么
安装Solaris,能直接从光盘启动吗?
A:Youharddiskisdamaged.Itmaybesalvagedmanually,orcannot.
Youshouldrestallthesystem.Orevenworse,youshouldchangeyour
harddisk.

99Q:CanyoutellmeifIwanttoaddanewCPUchiptoaonlyoneCPU
chipmachineonsolarissystem,Cantheapplicationruncontinuallyin
theoldcpuchipwithoutinterruptiononsolarissystem?
A:Pleasetellmethemachine/'stype.Ifyourmachineisaworkstation.
CPUchipscannotbeaddedwithoutturningdownthepower.Idon/'t
knowsomuchinthisfield.But,Ihaveforwardedthismessagetothe
specitestinourcompany.Youwillgetmuchmoredetailedanswers.
Butyoushouldwaitseveraldays.Anotherwayforyouistoconsult
thevenderwhosellyouthemachinedirectly.

100Q:what/'sdeferencebetweentheprocessor_bind()andpset_bind()?
A:Youcangetthedifferencesbetweentwofunctionsbyseeingthe
manual:
#manprocessor_bind
#manpset_bind

101Q:我们有一个产品在移植到SOLARIS的过程中出现了大量难以理解的问题,请给
我们现场支援一下,非常感谢!使用ForteDevelop6编译C++程序的时候出现
以下信息:

/"mit/../teglobal.h/",line39:Warning(Anachronism):AttempttoredefineTRUEwithoutusing#undef.
/"mit/../teglobal.h/",line40:Warning(Anachronism):AttempttoredefineFALSEwithoutusing#undef.
>>Assertion:(../links/prepexpression.cc,line65)
whileprocessingmit/multilock.cppatline0.

请问是什么意思,难道编译器还要assert吗?
A:CC编译器要求被编译的文件以两个新行结束,请在相关头文件末尾加上新行。

102Q:solaris的问题:激活小键盘上的Numlock,激活中文输入法,按小键盘上的0
键,中文输入法自行关闭,请问是何原因?
A:Youcansolvetheproblemyoumetionedbytryingthefollowingthree
ways:
1.MakesureusingGBlocale,insteadofGBK.
2.Visithttp://sunsolve.sun.comtogetthe/"recommendedpatches/"
packagefortheyoursolarisplatform,andaddit.
3.Ifpossible,youcanchangethesolarisplatformfromsolaris2.7
tosolaris2.8

103Q:有关在SOLARIS上使用NETSCAPE问题
问题描述:
1.在SOLARIS2.6上安装NETSCAP4.04后,安装提示成功后,运行netscape,出现以
下错误信息:
xlib:connectionto/"0.0/"refusedbyserver
xlib:clientisnotauthorizedtoserver
can/'topendisplay::0.0
2.在SOLARIS2.6上安装Acroread后,如何设置能直接点击打开.pdf文件,而无需
每次要先启动Acroread,然后再打开?请问上述问题如何解决?
A:1.Yourunthecommand:
#xhost:0.0
andthen,youcanuseNETSCAPEIntheterminal,inwhichthe
netscapeislaunched,pleasesettheenvrionmentDISPLAYas:0.0
2.Actually,Idon/'tknowhowtoconfigureit.Ifyouareinterested
init.YoucanreadsometopicsinAnswerBook2UserCollection.

104Q:syslogd如何支持汉字?syslogd好像会把汉字拆分成两个字节,并去掉高位
如何解决?
A:Howthebackgroundserviceprovidersyslogdsupportscharacterset
dependsonthelocaleenvironmentitstarts.So,ifyouwantChinese
characterstransferringbysyslog.Youcanrestartsyslogdin
Chineseenvironmentbyissuingthefollowingcommands:
#LANG=zh;exportLANG#setthelocaleenvironmentinChinese.
#kill-9`cat/etc/syslog.pid`#tokilltheformersyslogd
#/usr/sbin/syslogd

IfyouwantsyslogdtosupportChinesecharacterswheneverthe
machineboot.Puttheattactedfileinthe/etc/rc3.ddirectory.Make
surethisfile/'smodeis/"rwxr-xr-x/"andtheownerisroot.

105Q:我的工作站的交换分区分的太小了,除重装系统外,是否有其它办法将空间调
整一下。
A:Youcanextendyourswapregionbyissueingthefollowingcommand:
#mkfile-m
#swap-a
Note:theshouldbethefullpathname.

106Q:用vi打开一个script文件,发现里面有非法字符^M,在vi命令行如何全程替代
掉该字符?我试了一下用以下命令来做,却不行:0,$s/^M//
A:1,$s/^M//g,其中,^M是ctrl+V,ctrl+M,或者,用下面这个命令。
%unix2dos$filename>$newfilename

107Q:Howtoaddspacetoafilesysteminsolaris2.5.7?WhenIpatchadda
patch,Ittellmethatthereisnosufficientfilesystemcapacity.
A:Itseemslikeyourrootpartitiontoosmall.Pleasecheckit
availiablesize.Ifitissmall,Ithinkyouwouldbetterto
reinstallthesystem.Pleasestoreallthedatainthedisk.
Inthenewinstallation,youneedreallytopartitions,oneisfor
swap,andanotherisfor/.Theswappartition/tmpneedsabout200M
to500M.Thenalltheleftshouldbegivento/.

108Q:请教关于SolarisPatch的问题。我们在安装一些软件时,经常需要先安装一
些Patch,有一事不明,向您请教一下,比如某个软件需要Patch:107546-02,
现在我的机器上已经安装107546-08,是不是就不用再安装107546-02了Patch
后面的那部分是什么意思?是不是大的数字可以包含小的数字的功能了?同一
个Patch的不同版本之间会不会有冲突?
A:Youareright.Ifyouhaveinstalledabiggerversionofthesame
patch,itnotnecessaryforyoutoinstallthesmallerone.The
biggerversionwilloverridetheearlieroneifitinstalledbefore.
Youneednotworryaboutanycollision.

109Q:关于sun的SunNet我目前想了解关于sun的SunNet。我从sun的网站上了解到
SunNet已经被合并入到Solstice里了,我目前想试着把我做得程序集成到
SunNet或Solstice里,我看了Slostice得WhitePaper,但里边只提到了一点点
相关得Api,我从哪里,怎么才能到比较完全得文档呢?

A:Tomyknowledge,youcangotothefollowingforadetailedinfo:
http://www.sun.com/software/solstice/em-products/network/sunnetmgr.html.

110Q:关于SUN机器root口令丢失问题,如何解决?
A:办法如下:
利用SOLARIS的启动盘来启动,然后把硬盘mount上去,修改硬盘上原etc目录
下的shadow文件,将root项里的password域内容删除,变成无密码。然后重新
启动主机,以无密码的root登陆后,重新设置root口令。具体步骤如下:
1.把你的solaris光盘放进cdrom
2.键入stop+a
3.当出现/'ok/'字样时,键入bootcdrom-s
4.cd/tmp/root
5.mkdir/tmp/root/xxx(xxx是什么鬼东西就无关紧要了)
6.mount/dev/dsk/c0t0d0s0/tmp/root/xxx(在这里c0t0d0s0是你的root盘)
7.运行csh
8.setenvTERMvt220
9.cp/tmp/root/xxx/etc/shadow/tmp/root/xxx/shadow/shadow.bak
10.vi/tmp/root/xxx/shadow,并且将root项里的password域删除即可。
11.重启动,你就可以以无密码的root登陆了,登录后,更改root的密码。

111Q:Insolaris2.6.wheniusecommand/"killall/",allprocessstartedin
CDEwillbekilledandtheeviromentwillchangetoCDElogin.I
lookedupthemanmanualabout/"killall/",ittoldmethat/"onlyroot
canusethecommand/".ButIreallyuseitwithcommonid.In
solaris7andsolairs8,withcommonid,ican/'tusethecommon.can
youtellmewhyicanexecute/"killall/"successfullyinsolaris2.6?
A:Justseetheaccessmodeof/usr/sbin/killall.Ifyoucanuseit
withacommonaccountidentity,theaccessmodeshouldbex-rsx-rx-r.
Ifyoucannotuseitinacommonaccountidentity,themodeshould
bex-r--r--r.Youcanchangethemodeasyoulike,wheneverin2.6,
or2.7or2.8.

112Q:IdownloadedtheSDM2.3fromtheDownloadCenterof/"www.sun.com/"
,readtheWhitePaperandwebdetaileddescribing.Butitisonlythe
outlookofthesoftware.Ineedthedetaileddocumentabouthowto
integratedmyownnetworkmanagementapplicationtoSolstice.
A:ItransferthismessagtoSunServiceinGuangdong.

113Q:请问有没有磁盘管理工具。我们有一台E450,有5块硬盘,想做RAID,但是没有工
具.
A:Ifthemachine/'sOSissolaris2.8,thestoragemanagementsoftware
isalsoinstalledinyoumachine.YoucanmaketheRAIDbyissuing
thecommandfamily:/usr/sbin/meta*;Ifyouarenotsofamiliarwith
thesecommands.Icandoitforyou.oryoucanusesolstice
disksuite,itisaGUItool.

114Q:怎样强制更改NIS客户端的本地NIS数据表?有时候NIS客户端和NIS服务器端有
时会出现不一致的情况.NIS服务器和NISslave服务器也会出现这种情况。
A:你可以用yppush和ypxfr来做这种工作,更常见的方法是把它们写进cron,定
期更新,具体步骤请查阅Answerbook.


115Q:为了将工作站设为从DHCP动态分配IP,并且将主机名由/"unknown/"改为原名
修改了/etc/init.d/rootusr,将dhcpinfo后面三行(不是四行)注释掉;
hostname=`/sbin/dhcpinfoHostname`
#case$?in
#0)[-z/"$hostname/"]&&hostname=/'unknown/';;
#2)try_dhcp=no;;
esac
重启后,提示:
/sbin/rcs:ysntaxerroratline143:/'esac/'unexpected
INIT:cannotcreat/var/adm/utmpor/var/adm/utmpx
INIT:SINGLEUSERMODE
输入root口令后,只能运行在单用户模式,且vi、ls等都不能用(#vi:notfound)
如何才能打开/etc/init.d/rootusr文件进行修改,恢复正常状态。
A:请找一个SOLARIS的安装启动盘,使用以下方法可以修改rootusr文件,步骤如
下:
1.把你的solaris光盘放进cdrom
2.键入stop+a
3.当出现/'ok/'字样时,键入bootcdrom-s
4.cd/tmp
5.mkdir/tmp/xxx(xxx是什么东西无关紧要,随便取一个名字,如test)
6.mount/dev/dsk/c0t0d0s0/tmp/xxx(在这里c0t0d0s0是你的root盘)
7.运行csh
8.setenvTERMvt220
9.vi/tmp/xxx/etc/init.d/rootusr,把esac那行也注释掉即可。
10.把solaris光盘拿出,reboot,重启动即可。

116Q:一台Ultra60工作站,其固定IP为10.11.105.247,用ifconfighme0dhcp
start总是失败,如下所示。
#netstat-a|grep4999
#ifconfighme0dhcpstart
May720:11:11hwMusa01dhcpagent[478]:ERROR!Address10.11.105.147
isalreadyinuseifconfig:internalerrorinDHCPagent
#netstat-a|grep4999
localhost.4999*.*0000LISTEN
localhost.4999localhost.1023327680327680TIME_WAIT

抓包发现是dhcp服务器offer的IP地址10.11.105.147被decline了。手工运行
dhcpagent,提示4999端口被使用了。以前此工作站曾配置为固定IP:
10.11.105.147,但现在已改为10.11.105.247并重启过多次。请问,可能是什
么原因导致dhcp失败??

A:导致问题出现的原因是,由于客户机在申请原来的被保留分配的IP时,服务器
发现这个IP不能够被使用(已经有其它机器使用了这个IP地址)。使客户机申
请失败,并且使其中的某些进程不能正常退出,继续占用了端口4999而使后面
的申请不能进行。办法是找到占用端口4999的进程,杀掉即可。找到这个进程
的办法是,这个申请进程是带有dhcp字样的。
#ps-e|grepdhcp
会出现一到两个进程号。验证这些进程是否占用了4999是看进程打开的文件:
#/usr/proc/bin/pfiles#pid
早到进程然后杀掉。这样就可以继续启动Client端的dhcp申请。注意,修改
服务器的设置使新的申请可以成功。

117Q:我们有一台NatraT1,它的/tmp目录已经长到90%,如果目录满了是否会使系统
运行异常.(因为我们运行的业务不能停,故不能重启SUN机器来让系统清空该目
录,也不能直接清空该目录,应为应用程序正在运行.)下面是一些数据:

#df-k
FilesystemkbytesusedavailcapacityMountedon
/proc0000%/proc
/dev/dsk/c0t0d0s012584915194211436255%/
/dev/dsk/c0t0d0s61612343500741106323233%/usr
fd0000%/dev/fd
/dev/dsk/c0t0d0s33309992112057931%/var
/dev/dsk/c0t0d0s713550703838475125767217%/export/home
/dev/dsk/c0t0d0s530743103191735038%/opt
/dev/dsk/c0t0d0s154868736936812445175%/usr/openwin
swap6278645633606450490%/tmp
#cdtmp
#ls
ps_data
#ls-a-l
total98
drwxrwxrwt6syssys443May715:29.
drwxr-xr-x22rootroot512Mar2017:45..
drwxrwxr-x2rootroot176Feb2723:18.X11-pipe
drwxrwxr-x2rootroot176Feb2723:18.X11-unix
drwxrwxrwx2rootroot179Feb2723:18.pcmcia
drwxrwxrwt2rootroot327Feb2723:18.rpc_door
-rw-rw-r--1rootsys5056Feb2723:18ps_data
#cd.pcmcia
#ls-a-l
total32
drwxrwxrwx2rootroot179Feb2723:18.
drwxrwxrwt6syssys443May715:35..
prw-rw-rw-1rootroot0Feb2723:18pcram
#cd..
#pwd
/tmp
#cd.rpc_door
#ls-a-l
total32
drwxrwxrwt2rootroot327Feb2723:18.
drwxrwxrwt6syssys443May715:36..
Drw-r--r--1rootroot0Feb2723:18.rpc_100029.1
Drw-r--r--1rootroot0Feb2723:18.rpc_100029.2
Drw-r--r--1rootroot0Feb2723:18.rpc_100029.3
#cd..
#cd.X11-pipe
#ls-a-l
total32
drwxrwxr-x2rootroot176Feb2723:18.
drwxrwxrwt6syssys443May715:37..
-rw-rw-rw-1rootroot0Feb2723:18X0
#cd..
#ls
ps_data
#cd.X11-unix
#ls-al
total32
drwxrwxr-x2rootroot176Feb2723:18.
drwxrwxrwt6syssys443May715:38..
srwxrwxrwx1rootroot0Feb2723:18X0
等待您的回答,谢谢

A:我认为是系统统计信息错误的,本人的经验是当/tmp的使用率超过10%时,系统就
变的很慢了。出现这种情况,首先,要检查系统中运行的程序有没有不停分配内存,
却没有释放(指自己开发的程序)。另外看一下系统对/tmp的swap交换情况。使用工
具sar和iostat都可以看到。关于sar和iostat的用法,可以看man即可。

118Q:有一用MOTIF写的程序,运行之后不能显示中文(乱码),由于显示的信息是
不固定的,故不能使用资源文件.怀疑程序中与创建字体时使用了以下的函数
有关,但注释掉后也一样:
font1=XLoadQueryFont(XtDisplay(toplevel),/"-*-screen-bold-r-normal--12-*/");
font2=XLoadQueryFont(XtDisplay(toplevel),/"-*-screen-bold-r-normal--14-*/");
font3=XLoadQueryFont(XtDisplay(toplevel),/"-*-screen-bold-r-normal--16-*/");
fontlist=XmFontListCreate(font1,/"charset1/");
fontlist=XmFontListAdd(fontlist,font2,/"charset2/");
fontlist=XmFontListAdd(fontlist,font3,/"charset3/");
运行环境是ULTRA60,Solaris2.6,安装了中文环境。编译环境是SUNC++4.0。
还怀疑与LANG相关,曾试过设置为zh,chinese等也不行,请教此问题如何解决?

A:实际上,关于选择字体和字符集可以看这个资料,使
用系统提供的标准工具来从中间找到系统中存在的字体和字体的名称。这个资料在
AnswerBook的SystemAdministrationCollection中。实际上,上面的问题不
出现在字体的选择上面,而是在MOTIF中在选择框的使用设置中还要设置一次字体

119Q:请问SUN的E250以上机器支持“双机热备+磁盘阵列”的使用方式吗?Ultra系
列的机器是否也能支持呢?
A:SUN的E250以上机器支持“双机热备+磁盘阵列”的使用方式,可以使用
SunCluster软件实现;Netrat系列电信服务器也支持;Ultra系列的机器,不
在支持的列表中。但是,“双机热备+磁盘阵列”的具体含义应该搞清楚。推
荐的文档在sunclustercollection中。

120Q:我在一个JAVA程序中打开50个SOCKET端口,结果出现异常:
java.net.SocketException:Toomanyopenfiles
请问如何解决此问题?谢谢!另外,请问在一个JAVA进程中可以同时启动的线
程数是多少?最大线程数受什么限制?能否达到240个线程?谢谢!如上问题
如果可以通过修改配置来解决的话,会有什么样的负面影响?
A:Youhavetwowaystomodifythelimitnumberoffilesthataprocess
canopensimutanously.
One:modifythe/etc/systemfileaddthefollowingentry:
setrlim_fd_cur=#n
#nisthenumberyouwant.Shouldbenomorethan1024.
Youshouldrebootthemachine.
Two:Usethesystemcommand:ulimit
$ulimit-n#n
Note:YoushoulduseB-shell.
Andusingthesameterminalsession(inthesameterminal
window)toruntheyourapplicationprogram(toguaranteeyour
applicationprocessisachildprocessofthesetting
terminal.)Youcanmanulimittoseethedetailedusaged.
Thedisadvantagebroughtbyincreadthefilelimitefora
processorthewholesystemisincreasingthesystemmemory
usage.But,fortoday/'smachine,thisdisadvantageisnottoo
expensive.(WilliamsaidThereisnolimitformaxopen
socketnumberinJava.Buttheoperatingsystemhasalimitfor
maxopenfiledescriptors.Asocketresourceistreatedasa
filedescriptorinUnix.Thepreviousemailansweredyour
question.Youcantryassaid.

121Q:我想把一个HP平台上运行的BSHELL脚本在SOLARIS2。6上运行,但是出现了
问题:要运行的脚本部分:
command_count=0
command_item[$command_count]=check_AutoRaid
command_count=`expr$command_count+1`
command_item[$command_count]=check_system_resource
command_count=`expr$command_count+1`
command_item[$command_count]=check_diskspace
command_count=`expr$command_count+1`
command_item[$command_count]=check_bill_record
command_count=`expr$command_count+1`
command_item[$command_count]=get_max_CAPS
command_count=`expr$command_count+1`
command_item[$command_count]=check_DataBase
command_count=`expr$command_count+1`
command_item[$command_count]=check_netstate_SMP
command_count=`expr$command_count+1`
command_item[$command_count]=check_work_dir
command_count=`expr$command_count+1`
command_item[$command_count]=check_dir_OAM
command_count=`expr$command_count+1`
command_item[$command_count]=check_dir_others
command_count=`expr$command_count+1`
command_item[$command_count]=check_files_informix
command_count=`expr$command_count+1`
command_item[$command_count]=check_crontab
command_count=`expr$command_count+1`
出现的问题:
./scp.sh:command_item[0]:notfound
./scp.sh:command_item[1]:notfound
./scp.sh:command_item[2]=:notfound
./scp.sh:command_item[3]=:notfound
./scp.sh:command_item[4]=:notfound
./scp.sh:command_item[5]=:notfound
./scp.sh:command_item[6]=:notfound
./scp.sh:command_item[7]=:notfound
./scp.sh:command_item[8]=:notfound
./scp.sh:command_item[9]=:notfound
./scp.sh:command_item[10]=:notfound
./scp.sh:command_item[11]=:notfound
./scp.sh:badsubstitution

请问这是否因为平台的问题引起的

A:IhavelookedupseveraldocumentsaboutBShell.Thereisnoarray
definitionandusageinoriginalB-shell.ItseemslikeB-shellis
expendedinHPplatform.Ithinkyoushouldmodifythesourcescriptto
makeitpureB-shellandthencanruninSolaris.

122Q:现在我们有一个特殊的需求,需要在编译时,指定一字节对齐(缺省好象是八
字节对齐的),请问我们使用哪一个编译选项能达到这个目的?
A:Therearesomedifferencesbetweendifferentc/c++compilerintheir
options.Actually,Idon/'tknowsomuchabouttheoptionsusedin
gcc,butIthinkyoucangetsomedocumentsfromthewebsite
http://www.gnu.org.WehavedetaileddocumentaboutSolarisC.If
youwantthesedocuments,youcancontactmeorgetfrom
http://docs.sun.com,inwhichsiteyoufindworkshopcollection.

123Q:有如下几个问题请帮助解决:
1、solaris用户登录以后,总是弹出很多控制台窗口和浏览器窗口等,请问:
如何定制用户的登录界面和环境,让其登录后只弹出一个窗口。
2、请问如何再solaris上设置dns?
3、如果想再solaris上将固定ip方式改为自动获取ip的dhcp方式,需要修改哪
些文件?而如果将工作站设为dhcp服务器,又如何设置?最好是能发一份
solaris这方面的配置资料,谢谢
A:1.删掉不想要的窗口,选择exit退出桌面环境,系统提示是否保存当前桌
面,回答是。.
2.手边刚好有一本教程,请参照进行配置.
dnsconfig
3.Youcancreateaemptyfiledhcp.hme0in/etcdirectory.Ifyou
don/'twanttorebootyourmachine,runthecommand:
#ifconfighme0dhcpstart

124Q:我们用一台NetraT1,操作系统为solaris7,运行一个应用程序。
用df-k/tmp查看swap空间,发现一些奇怪的现象:
应用程序启动时:
文件系统千字节用了可用容量挂接在
swap1158400811563921%/tmp
运行1小时后:
文件系统千字节用了可用容量挂接在
swap1158392811583841%/tmp
再过一段时间:
文件系统千字节用了可用容量挂接在
swap1158276811582681%/tmp
再过一段时间:
文件系统千字节用了可用容量挂接在
swap1158392811583841%/tmp
其中,1158400为swap的总空间大小,为什么总的swap空间会变化。如果swap不断减少
,总有一天会用完,该怎么办。带着疑惑向您请教

A:Actually,thesampledatainyourtablelookveryhealthy.Don/'t
trustsomuchaboutthesestatisticsnumbers.Infact,ifthegloss
numberofswapfilesystemreducednotbig,thesystemcanrunwell.
Ifthenumberdecreasemuch,itmeansaprocessusealotofswap
space.Ifyoukilltheprocess,thenumberwillincreasesome.

125Q:在WinNT中有任务管理器,在Linux上面有top程序,可以查看一个进程占用
的CPU时间,内存,当前运行的线程数等,但是在Solaris上面如何查询这些信
息呢?
A:Therearetwowaystoseeaprocess/'scpuoccuptation.
1.runthecommandinaterminalorconsole:#ps-elf
2.Incdeinterface,thereisagraphicutilitywhichyoucanfind
intool(or工具)column

126Q:请问:设置了一个普通用户,该用户设置有相应的$PATH环境变量,用su命令(不
是su切换到超级用户以后,原来的$PATH变量的值发生了改变,导致了应用有
些不正常,请问这如何解决?
A:实际上,使用su命令切换到超级用户,环境变量$PATH只受文件
/etc/default/su中SUPATH条目的控制。现在,你可以参照此文件对SUPATH条
目进行修改即可满足你的要求。

127Q:如果采用“Cluster”机制进行双机热备,两台机器之间需要通过心跳线相连
,请问这些心跳线是如何连接的?也就是说,每台机器有两个网口做心跳侦听,
两台机器间的心跳网线是交叉直接相连,还是可以通过“Lanswitch”或“Hubor”间接相连?
A:交叉568a-568b

128Q:我们的程序需要建立很多socket连接,但因为操作系统的限制,只能建立有限
的连接。如何修改系统参数,提高操作系统对文件描述符数量的限制。
A:Youhavetwowaystomodifythelimitnumberoffilesthataprocess
canopensimutanously.
One:modifythe/etc/systemfileaddthefollowingentry:
setrlim_fd_cur=#n
#nisthenumberyouwant.Shouldbenomorethan1024.
Youshouldrebootthemachine.
Two:Usethesystemcommand:ulimit
$ulimit-n#n
Note:YoushoulduseB-shell.
Andusingthesameterminalsession(inthesameterminal
window)toruntheyourapplicationprogram(toguaranteeyour
applicationprocessisachildprocessofthesetting
terminal.)Youcanmanulimittoseethedetailedusaged.

129Q:ipcs命令有没有功能来删除一个共享内存
A:No,ipcscanonlyprintsomeusageinformationaboutsharedmemory,
locks,andsemaphores.

130Q:我们的程序需要建立很多socket连接,但因为操作系统的限制,只能建立有限
的连接。如何修改系统参数,提高操作系统对文件描述符数量的限制。
A:Youhavetwowaystomodifythelimitnumberoffilesthataprocess
canopensimutanously.
One:modifythe/etc/systemfileaddthefollowingentry:
setrlim_fd_cur=#n
#nisthenumberyouwant.Shouldbenomorethan1024.
Youshouldrebootthemachine.
Two:Usethesystemcommand:ulimit
$ulimit-n#n
Note:YoushoulduseB-shell.
Andusingthesameterminalsession(inthesameterminal
window)toruntheyourapplicationprogram(toguaranteeyour
applicationprocessisachildprocessofthesetting
terminal.)Youcanmanulimittoseethedetailedusaged.

131Q:请解释一下solaris8有没有dynamicpartition的概念.是否可以向windows一
样动态分区而不用format原来的文件系统,谢谢.
A:ThereisnodynamicpartitioninSolaris8.Let/'smakethe
conception/"dynamicpartition/"clearfirst./"dynamicpartition/"
means
gzip

gzip[选项]要压缩(或解压缩)的文件名
-c将输出写到标准输出上,并保留原有文件。
-d将压缩文件压缩。
-l对每个压缩文件,显示下列字段:压缩文件的大小,未压缩文件的大小、压缩比、未压缩文件的名字
-r递归式地查找指定目录并压缩或压缩其中的所有文件。
-t测试压缩文件是正完整。
-v对每一个压缩和解压缩的文件,显示其文件名和压缩比。
-num-用指定的数字调整压缩的速度。
举例:
把/usr目录并包括它的子目录在内的全部文件做一备份,备份文件名为usr.tar
tarcvfusr.tar/home
把/usr目录并包括它的子目录在内的全部文件做一备份并进行压缩,备份文件名是usr.tar.gz
tarczvfusr.tar.gz/usr
压缩一组文件,文件的后缀为tar.gz
#tarcvfback.tar/back/
#gzip-qback.tar
or
#tarcvfzback.tar.gz/back/
释放一个后缀为tar.gz的文件。
#tarzxvfback.tar.gz
#gzipback.tar.gz
#tarxvfback.tar


RPM的使用
安装一个rpm包
rpm-ivh<rpmpackagename>
升级一个包
rpm-Uvh<rpmpackagename>
移走一个RPM包
rpm-e<rpmpackagename>
查询一个包是否被安装
rpm-q<rpmpackagename>
得到被安装的包的信息
rpm-qi<rpmpackagename>
列出该包中有哪些文件
rpm-ql<rpmpackagename>
列出所有被安装的包
rpm-qa<rpmpackagename>
列出一个未被安装进系统的RPM包的文件中包含哪些文件
rpm-qilp<rpmpackagename>
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics