SUN Solaris常见问题集锦

更新时间:2023-10-08 07:57:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

SUN 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. boot cdrom -s

2. fsck /dev/dsk/c0t0d0s0 (取决于根分区的设备) 3. mount -F ufs /dev/dsk/c0t0d0s0 /mnt 4. TERM=ansi; export TERM

5. 编辑/mnt/etc shadow文件,把root对应的口令去掉。 6. 重启后的root的口令为空。

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

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

5. Q: 共享内存大小如何设置?

A: 在system文件的最后一行加入Set shmsys:shminfo_shmmax=XXX /etc/set shmsys:shminfo_shmmin=XXX

这里的XXX是代表共享内存的大小。单位:字节 共享内存一般为内存的一半 例如内存为512M

设置应为512/2*1024*1000=262144000

6. Q: root用户的配置文件在什么地方?

A: root用户的配置文件和其他用户的配置文件有些不同,它在/etc/profile文件 中规定。

7. Q: SUN solaris 在远程X-win pro下无法以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

name1 gateway name2 metric values 所有中间的很长的空均为TAB

Net,host 表示路由指向是网络还是主机,net和host是关键字 Name1 目的网络名或主机名 Gateway 关键字

Name2 网关名或网关ip地址 Metric 关键字 values 跳数

Passive 关键字,表示被动方式,路由器不叫换路由信息 Active 关键字,表示主动方式,路由器交换路由信息 External 关键字,表示外部方式,其他进程已安装了路由 例如:

net 129.9 gateways 129.6.0.1 metric 1 passive

host 129.7.10.21 gateway 129.6.0.2 metric 1 passive

Solaris

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

11.Q: 如何在网上安装Solaris?

A: 假设SERVER IP为10.11.41.10,hostname为inssvr;CLIENT IP为10.11.41.11 ,hostname为inscli。

在SERVER端执行以下步骤 条件:有340M的剩余空间

1. 将Solaris 2.6的安装盘插入CD-ROM

2. 将Solaris 2.6 CD-ROM的slice 0拷贝到硬盘

# cd /cdrom/sol_2_6_sparc_smcc_svr/s0/solaris_2.6/Tools

# ./setup_install_server /export/install

3. 编辑文件/export/autocfg/sysidcfg,以下是它的内容 #Sample sysidcfg file for SPARC systems 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.10 inssvr loghost 10.11.41.11 inscli 5. 增加安装客户 # cd /export/install

#./add_install_client -e CLIENT的以太网地址 -i CLIENT的IP地址 -s inssvr:/export/install -c inssvr:/export/autocfg -p inssvr:/export/autocfg inscli sun4u 在CLIENT端的OK提示符下执行 OK boot net - install

Solaris 7 for sparc与2.6的区别,7没有默认的sysidcfg和autocfg目录,需要自 己建立,而且OK boot net即可

12.Q: DHCP in Solaris8?

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行:

\ hostname=`cat /etc/nodename` 修改/etc/init.d/inetsvc第168行: hostname=`/sbin/dhcpinfo Hostname` if [ -z \ #hostname=\

hostname=`cat /etc/nodename` fi

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

if [ \ #dnsdomain=`/sbin/dhcpinfo DNSdmain` dnsdomain=`cat /etc/defaultdomain` else

dnsdomain=

fi

if [ -n \

#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 \

在/etc/init.d/inetsvc第一行加入如下语句:

if [ -f /etc/dhcp.*[0-9] ]; then

_INIT_NET_STRATEGY=\ 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

之所以要修改,究其原因我们的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 -o liberrlog.so -G ErrLog.o

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

1. #reboot --r 或者ok boot -r

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

15. Q: 如何设置DNS?

A: (1)/etc/nsswitch.conf的hosts解析加上nis或/和dns,内容如下 hosts: files dns

(2)设置到DNS服务器网关于/etc/defaultrouter,内容如下 10.11.43.254

(3)设置DNS服务器的IP地址/etc/resolv.conf,内容如下 nameserver 10.15.1.3 nameserver 129.9.111.100 domain huawei.com

16. Q: Ultra60工作站从外挂光驱启动?

A: Ultra60 工作站缺省配置是内置光驱,用外挂光驱重新安装Solars时,用boot cdrom命令则不能从光驱启动,屏幕上打印错误信息:Drive not found.

原因如下:由于Ultra60工作站缺省支持内置光驱,cdrom的缺省配置是内置光 驱的物理设备名。当使用外挂光驱时,当使用boot cdrom命令时,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

这是缺省配置,用boot cdorm命令时,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: 一台Sun Ultra80工作站安装SunOS 5.6失败,请问其原因以及如何避免? A: 硬件环境为Ultra-80/2CPU(450M)/1harddisk(18G)/2G Memory,从网络启动安 装SunOS 5.6。安装过程中途中断并出现以下提示:

panic[CPU3]/thread=0x301bde80: CPU3 privileged UE Error: AFSR 0x00000000 80200000 AFAR 0x00000000 7c5e0190 SIMM U1302 U0302 U1301 U0301 syning file systems... [27[ 406 136 done 12535 static and sysmap kernel pages

50 dynamic kernel data pages 205 kernel pageable pages 0 segkmap kernel pages 0 segvn kernel pages

0 current user process pages

12790 total pages (12790 chunks)

dumping to vp 6145608c, offset: 3989467

panic[CPU3]/thread=0x30043e80: panic dump timeout Dump Aborted

Type 'go' to resume{3} ok

随后输入‘go'或者‘boot -r’都无法使系统启动,提示如下:

Can not open Kernel/unix input filename [Kernel/unix]:

只有重新从网络启动。这是由于CPU硬件结构与Solaris系统不兼容造成的, 需要补丁。这个问题不仅仅是在Ultra80的机器上,如果Ultra60使用了SUN的 新推出的高速CPU(400M以上,一般为450M)且操作系统为Solaris 2.6或者 Solaris 2.5.1,也会出现类似问题。如果工作站使用的是这种高速CPU,在 随新机器一起的附件中会有一本手册:Installing Solaris 2.5.1 or

Solaris 2.6 Software on 419+ MHz Systems,其中详细描述了如何解决这 个问题(在zh-6页)。另外,附件中还有一张补丁光盘,名字叫做: Operating Environment Installation CD May 1999,此光盘专门用于解决 此问题.

18. Q :在solaris上如何进行数据的备份和恢复?

A: 备份整个文件系统,也称作完全备份(full dump);在完全备份的基础上备 份修改过的文件,称作渐进备份(incremental dump);

ufsdump

ufsdump命令用于备份文件系统,可以完全备份也可以渐进备份。ufsdump命令的格式 为:/usr/sbin/ufsdump [options] dump_device files_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# ufsdump 0uf /tmp/ddd /dev/dsk/c0t0d0s0 DUMP: Writing 32 Kilobyte records

DUMP: Date of this level 0 dump: Mon Sep 07 22:37:16 1998 DUMP: Date of last level 0 dump: the epoch

DUMP: Dumping /dev/rdsk/c0t0d0s0 (pioneer:/) to /tmp/ddd. DUMP: Mapping (Pass I) [regular files] DUMP: Mapping (Pass II) [directories]

DUMP: Estimated 25234 blocks (12.32MB). DUMP: Dumping (Pass III) [directories] DUMP: Dumping (Pass IV) [regular files]

DUMP: 25214 blocks (12.31MB) on 1 volume at 1599 KB/sec DUMP: DUMP IS DONE

DUMP: Level 0 dump on Mon Sep 07 22:37:16 1998 pioneer# more /etc/dumpdates

/dev/rdsk/c0t0d0s0 0 Mon Sep 7 22:37:16 1998

备份前的准备工作

重新启动系统到单用户状态,或将要备份的文件系统卸载下来。 通知所有用户该文件系统不可用。 #wall

/export/home will be unavailable in two minutes, please log out Press ctrl-D

对文件系统进行检查(fsck)。

ufsdump

如前例所示。

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

Sun Mon Tue Wed Thu Fri Week1: Full 5 5 5 5 3 Week2: 5 5 5 5 3 Week3: 5 5 5 5 3 Week4: 5 5 5 5 3

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

ufsrestore

ufsrestore用于恢复使用ufsdump命令备份的文件系统。命令格式为: /usr/lib/fs/ufs/ufsrestore options [arguments] [filename ...] options包括:

t:备份列表;

x:只恢复命令行中指定的文件; r:恢复整个备份;

f:指定备份文件所在的设备或目录; v:verbose mode,列出备份文件的路径。 例如:

对备份文件进行列表: pioneer# ufsrestore tvf ddd

Verify volume and initialize maps Media block size is 126 Extract directories from tape Initialize symbol table.

Dump date: Mon Sep 07 22:37:16 1998 Dumped from: the epoch

Level 0 dump of / on pioneer:/dev/dsk/c0t0d0s0 Label: none dir 2 .

dir 3 ./lost+found dir 5696 ./usr dir 11392 ./var dir 5697 ./export

dir 11393 ./export/home dir 5698 ./opt leaf 4 ./bin dir 11394 ./dev dir 5699 ./dev/sad

leaf 5879 ./dev/sad/admin leaf 5825 ./dev/sad/user leaf 11592 ./dev/be

leaf 11496 ./dev/conslog ...

从备份中恢复指定文件: pioneer# cd /tmp

pioneer# ufsrestore xvf ddd ./etc/passwd Verify volume and initialize maps Media block size is 126

Dump date: Mon Sep 07 22:37:16 1998 Dumped from: the epoch

Level 0 dump of / on pioneer:/dev/dsk/c0t0d0s0 Label: none

Extract directories from tape Initialize symbol table. Make node ./etc

Extract requested files

You have not read any volumes yet.

Unless you know which volume your file(s) are on you should start with the last volume and work towards the first. Specify next volume #: 1 extract file ./etc/passwd Add links

Set directory mode, owner, and times. set owner/mode for '.'? [yn] n

执行该操作需要指定所要恢复的文件在备份文件中的位置。由于备份文件从卷1开始, 所以可以指定从卷1开始搜索。恢复整个文件系统下例将一个老的文件系统(/opt)移 到一个新的磁盘分区(/dev/rdsk/c0t3d0s5)中。首先,卸载老的文件系统并实施备 份:

#umount /opt #fsck /opt

#ufsdump 0uf /dev/rmt/0 /opt

其次,生成新的文件系统,将其安装到一个临时目录(/mnt),并实施恢复: #newfs /dev/rdsk/c0t3d0s5 #fsck /dev/rdsk/c0t3d0s5

#mount /dev/dsk/c0t3d0s5 /mnt #cd /mnt

#ufsrestore rvf /dev/rmt/0 #rm restoresymtable

最后,卸载新的文件系统,用fsck检查其一致性。 #cd /

umount /mnt

#fsck /dev/rdsk/c0t3d0s5

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

系统备份:tar -cvf 目标文件名/设备名备份文件,例如: tar -cvf backup.tar *

命令将当前目录下的所有文件(包括各级子目录)都打包在backup.tar文件中。 tar -cvf /dev/rmt/0 *

命令将当前目录下的所有文件(包括各级子目录)都打包到磁带上。查看tar文件的内 容:tar tvf 目标文件名/设备名,例如: tar -tvf backup.tar tar -tvf /dev/rmt/0

将tar文件中的内容恢复到指定目录中去:tar xvf 目标文件名/设备名 [目录名],例 如:

tar -xvf backup.tar /home tar -xvf /dev/rmt/0 /home

如果不指定目录名则表示当前目录。

19. Q: 如何在Soraris下面安装ATM网卡? A: 网卡型号:FORE PCA-200EUX/OC3 操作系统:Solaris 2.7 工作站:SUN Ultra60

一、硬件安装

1、工作站关电后,将网卡妥善安装在一个PCI插槽中;

2、工作站上电,按STOP and A中断boot process,到ok提示符;

3、输入命令show-devs,显示系统配置,FORE网卡的device-pathname应出现在 配置列表中,形式可能如下: /pci@1f,2000/FORE,PCA-200E@2

4、设备提供光口自环测试(media loopback)和内部自环测试(internal loopback), 供检查设备及安装是否完好。根据经验用内部自环测试即可,方法: 输入命令 test /pci@1f,2000/FORE,PCA-200E@2 待出现:pass 0 说明硬件及安装都正确; 5、输入boot命令,启动系统。 二、软件安装

1、软件安装需要root权限;

2、网卡支撑软件一般是一个.tar文件提供,解开后在其目录下有8个子目录,分 别为:

FORECore ForeThought ATM Core Software FOREDrv ForeThought ATM Card Drivers

FORESpans ForeThought SPANS Signalling Software FOREUni ForeThought UNI Signalling Software FOREclip ForeThought Classical IP Software FOREip ForeThought FORE IP Software

FOREmpoa ForeThought MPOA / LAN Emulation Software FORExti ForeThought XTI Application Programming Interface

3、例如.tar文件解开后在/home/FORE下,则该目录下就有上述8个子目录,我们要

用的程序在FOREDrv、FOREip下,但各个模块之间有一定的依赖关系,需要安装的模块 有6个: FORECore、FORESpans、FOREDrv、FOREip、FOREUni、FOREclip。安装过程:

> pkgadd -d /home/FORE

The following packages are available:

1 FORECore ForeThought ATM Core Software .........(sparc) 5.1

2 FOREDrv ForeThought ATM Card Drivers .........(sparc) 5.1

3 FORESpans ForeThought SPANS Signalling Software .........(sparc) 5.1

4 FOREUni ForeThought UNI Signalling Software .........(sparc) 5.1

5 FOREclip ForeThought Classical IP Software

int c;

printf(\ c=getc(stdin);

for(int i=0;i<100;i++)

p=(int *)malloc(sizeof(int)*32000); printf(\ //1.....

c=getc(stdin);

for(int i=0;i<100;i++) free((void *)p);

printf(\ //2......

c=getc(stdin); return 0; }

发现在 2 处系统的空闲内存块并没有增加,free调用到底有没有释放内存? A: malloc 调用引起进程堆空间增长,但free调用不会导致该堆空间立即缩小, 系统只是简单记录这一变化,就继续运行程序,只有系统出现内存短缺时, 系统才收集这些内存块重新分配,这样实现是为了减少系统开销,提高效率.

46 Q: 请问在kstat的输出中,类似avenrun_15min这种内核动态参数有没有介绍材料? A: 通常, kstat输出的是内核模块中的一些链表或数组,按照SUN公司的文档,这些 输出结果是自解释型的,根据他们的名字就可以猜到其含义.但实际上并不是这 样.这些链表中包含的结构是在下的一些头文件中定义的,比如

kmem_cache模块的结构由kmem_impl.h定义,hme模块的结构由hme.h定义,等等. 翻看这些头文件,可以得到稍微详细一点的资料. 参数名字通常与某结构的成员 变量同名,头文件中由简单的注释指出其作用. 比如:hme模块输出中包含如下字 段:

brdcstrcv 1094670

我们就可以查hme.h,hme.h中有一个很大的结构:hme, 其中有: uint32_t hme_brdcstrcv; /* # broadcast packets received */

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 \ # cat /var/adm/messages

# kill -HUP `cat /etc/syslog.id` # logger -p deamon.notice \ # 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地址冲突.

51 Q: 一个进程里最多可以打开多少文件?

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

52 Q: 如何改变登录CDE时的语言环境?

A: 修改/usr/dt/config/Xconfig文件中的变量 Dtlogin*language即可.

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

54 Q: 我安装完solaris5.7之后(安装时选择简体中文),运行C语言编译器cc不成功 ,提示“language optional software package not installed.”。请问这是 怎么回事,该如何解决?

A: Solaris本身带有adb,mdb,make工具,但不带C语言编译器.若要使用需要单独购 买软件包及license.

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

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

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

58 Q: Sun solaris7系统中有一下几种SHELL,sh,csh,ksh,另外还有一个jsh. 我的问题是:jsh是什麽SHELL?另外有bash SHELL吗?

A: jsh 就是 sh, 只不过是激活了job control 模式. 但现在 sh 本身就有job control 功能,所以只用 sh 就可以了. bash 是 sh 的增强, 如果你的系统没 有这个shell, 可以到 www.sunfreeware.com 下载.

ls /bin/*sh 可以看到系统所有存在的shell.

59 Q: 我的光驱无法读取光盘?且总是显示设备忙,如何搞定?mount显示没有被 mount.

A: 查找进程 vold 并将其杀死,就可以手工打开光驱.

60 Q: 如何将root用户的shell改掉,我知道一般用户可在admintool下修改,但root 用户不能。

A: 1. chmod 666 /etc/passwd (一定要让普通用户有些权限,切记!)

2. vi /etc/passwd(最后一个字段试root 的 shell,要确保该程序存在方可改 掉它. )

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行:

\ hostname=`cat /etc/nodename` 修改/etc/init.d/inetsvc第168行: hostname=`/sbin/dhcpinfo Hostname` if [ -z \ #hostname=\

hostname=`cat /etc/nodename` fi

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

if [ \ #dnsdomain=`/sbin/dhcpinfo DNSdmain` dnsdomain=`cat /etc/defaultdomain` else

dnsdomain= fi

if [ -n \

#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 \ 在/etc/init.d/inetsvc第一行加入如下语句:

if [ -f /etc/dhcp.*[0-9] ]; then

_INIT_NET_STRATEGY=\ 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

123 Q: 有如下几个问题请帮助解决:

1、solaris用户登录以后,总是弹出很多控制台窗口和浏览器窗口等,请问: 如何定制用户的登录界面和环境,让其登录后只弹出一个窗口。 2、请问如何再solaris上设置dns?

3、如果想再solaris上将固定ip方式改为自动获取ip的dhcp方式,需要修改哪 些文件?而如果将工作站设为dhcp服务器,又如何设置?最好是能发一份 solaris这方面的配置资料,谢谢

A: 1. 删掉不想要的窗口,选择 exit 退出桌面环境,系统提示是否保存当前桌 面,回答是。.

2. 手边刚好有一本教程,请参照进行配置. dnsconfig

3. You can create a empty file dhcp.hme0 in /etc directory. If you don't want to reboot your machine, run the command: # ifconfig hme0 dhcp start

124 Q: 我们用一台Netra T1,操作系统为solaris7,运行一个应用程序。 用df -k /tmp查看swap空间,发现一些奇怪的现象: 应用程序启动时:

文件系统千字节用了可用容量挂接在 swap 1158400 8 1156392 1% /tmp 运行1小时后:

文件系统千字节用了可用容量挂接在 swap 1158392 8 1158384 1% /tmp 再过一段时间:

文件系统千字节用了可用容量挂接在 swap 1158276 8 1158268 1% /tmp 再过一段时间:

文件系统千字节用了可用容量挂接在 swap 1158392 8 1158384 1% /tmp

其中,1158400为swap的总空间大小,为什么总的swap空间会变化。如果swap不断减少 ,总有一天会用完,该怎么办。带着疑惑向您请教

A: Actually, the sample data in your table look very healthy. Don't trust so much about these statistics numbers. In fact, if the gloss

number of swap file system reduced not big, the system can run well. If the number decrease much, it means a process use a lot of swap space. If you kill the process, the number will increase some.

125 Q: 在WinNT中有任务管理器,在Linux上面有top程序,可以查看一个进程占用 的CPU时间,内存,当前运行的线程数等,但是在Solaris上面如何查询这些信 息呢?

A: There are two ways to see a process's cpu occuptation. 1. run the command in a terminal or console: #ps -elf

2. In cde interface, there is a graphic utility which you can find

in tool(or 工具) column

126 Q: 请问: 设置了一个普通用户,该用户设置有相应的$PATH环境变量,用su命令(不 是su -)切换到超级用户以后,原来的$PATH变量的值发生了改变,导致了应用有 些不正常,请问这如何解决?

A: 实际上,使用su命令切换到超级用户,环境变量$PATH只受文件

/etc/default/su中SUPATH条目的控制。现在,你可以参照此文件对SUPATH条 目进行修改即可满足你的要求。

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

128 Q: 我们的程序需要建立很多socket连接,但因为操作系统的限制,只能建立有限 的连接。如何修改系统参数,提高操作系统对文件描述符数量的限制。 A: You have two ways to modify the limit number of files that a process can open simutanously.

One: modify the /etc/system file add the following entry: set rlim_fd_cur = #n

#n is the number you want. Should be no more than 1

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ywlyanw/archive/2007/09/29/1806554.aspx

PTHREAD_SCOPE_SYSTEM,问题仍然存在。函数A以静态库方式由第三方提供, 我们现需要使之在一个子线程中运行,因此希望能够提供主线程与子线程差异 的资料,除堆栈空间、调度方式外,是否还有其他差别,造成以上错误的发生 A: In fact, there is no problem in the program. I think there is a bug in their debug tool: purify. You can use dbx to debug your program.

94 Q: 请问一块硬盘上可以有两个Solaris分区吗?在一块硬盘上分了两个solaris分 区,一个是active的系统安装分区,另一个是后来用fdisk创建的,请问怎样把 第二个分区加入到solaris系统中使用。谢谢。

A: Yes, There can be up to six partitions in a disk. you can see the partition using utility format. Command list: #format

Then you will see the disks installed in you system.then select the disks you are interested in. then print \ to see the partition information. The partition you want to add to the system can be identified as c#t#d#s#. Make sure the mount point( a empty directory in file system). such as /disk1.then run the command:

#mount /dev/dsk/c#t#d#s# /disk1

run the command #df -k

to verify the slice(partition) is properly installed.

95 Q: 请问在Solaris 2.7上,可以动态改变分区大小吗? 我的工作站划分分区不合理, 根分区太小,已经满了,可以使用工具动态改变吗?

A: No, If you want to modify it, the whole disk data will be lost. In fact, I think it high time for you to re-instal the solaris

system. In the new installation. You really need just two partitions swap and root. Leave no more than 1G to swap partition and all the left to root.Don't forget to backup all you data before re-installation.

96 Q: 用CC编译器如何实现结构成员按字节对齐,类似于其他编译器的#pragma pack(1) 功能。

A: It is a standard compilation option(#pragma pack). It is also

supported in Solaris C.You can get documents about SC options from http://sunlibray under workshop directory.

97 Q: 为什么SUN的本地界面有时候会出现死掉的情况,此时kill掉用户的dtsession 是否就可以恢复正常。如不能恢复正常还需要做那些操作。 A: In my experince, the interface dying, may be caused by other application other than dtsession. You should determine which

program's interface causes the interface dying. This situation is not

often happens, and most of them happened when you are manipulating a

program's interface by mouse. When it happen, login the system from network as \ program.

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

A: You harddisk is damaged. It may be salvaged manually, or can not. You should restall the system. Or even worse, you should change your harddisk.

99 Q: Can you tell me if I want to add a new CPU chip to a only one CPU chip machine on solaris system,Can the application run continually in the old cpu chip without interruption on solaris system ?

A: Please tell me the machine's type. If your machine is a workstation. CPU chips can not be added without turning down the power. I don't know so much in this field. But, I have forwarded this message to the specitest in our company. You will get much more detailed answers. But you should wait several days. Another way for you is to consult the vender who sell you the machine directly.

100 Q: what's deference between the processor_bind() and pset_bind()? A: You can get the differences between two functions by seeing the manual:

# man processor_bind # man pset_bind

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

\line 39: Warning (Anachronism): Attempt to redefine TRUE without using #undef.

\line 40: Warning (Anachronism): Attempt to redefine FALSE without using #undef.

>> Assertion: (../links/prepexpression.cc, line 65) while processing mit/multilock.cpp at line 0.

请问是什么意思,难道编译器还要assert吗?

A: CC 编译器要求被编译的文件以两个新行结束,请在相关头文件末尾加上新行。

102 Q: solaris的问题:激活小键盘上的Numlock,激活中文输入法,按小键盘上的0 键,中文输入法自行关闭,请问是何原因?

A: You can solve the problem you metioned by trying the following three ways:

1. Make sure using GB locale, instead of GBK.

2. Visit http://sunsolve.sun.com to get the \ package for the your solaris platform, and add it.

3. If possible, you can change the solaris platform from solaris 2.7 to solaris 2.8

103 Q: 有关在SOLARIS上使用NETSCAPE问题 问题描述:

1.在SOLARIS2.6上安装NETSCAP4.04后,安装提示成功后,运行netscape,出现以 下错误信息:

xlib:connection to \ xlib:client is not authorized to server can't open display : :0.0

2.在SOLARIS2.6上安装Acroread后,如何设置能直接点击打开.pdf文件,而无需 每次要先启动Acroread,然后再打开? 请问上述问题如何解决? A: 1. You run the command: #xhost :0.0

and then, you can use NETSCAPE In the terminal, in which the netscape is launched, please set the envrionment DISPLAY as :0.0 2. Actually, I don't know how to configure it. If you are interested in it. You can read some topics in AnswerBook2 User Collection.

104 Q: syslogd 如何支持汉字? syslogd 好像会把汉字拆分成两个字节,并去掉高位 如何解决?

A: How the background service provider syslogd supports character set depends on the locale environment it starts. So, if you want Chinese characters transferring by syslog. You can restart syslogd in Chinese environment by issuing the following commands:

# LANG=zh; export LANG # set the locale environment in Chinese. # kill -9 `cat /etc/syslog.pid` # to kill the former syslogd # /usr/sbin/syslogd

If you want syslogd to support Chinese characters whenever the machine boot. Put the attacted file in the /etc/rc3.d directory.Make sure this file's mode is \

105 Q: 我的工作站的交换分区分的太小了,除重装系统外,是否有其它办法将空间调 整一下。

A: You can extend your swap region by issueing the following command: #mkfile -m #swap -a

Note: the should be the full path name.

106 Q: 用vi打开一个script文件,发现里面有非法字符^M,在vi命令行如何全程替代

掉该字符?我试了一下用以下命令来做,却不行:0,$s/^M//

A: 1,$s/^M//g ,其中,^M是 ctrl+V ,ctrl+M,或者,用下面这个命令。 %unix2dos $filename > $newfilename

107 Q: How to add space to a filesystem in solaris2.5.7 ? When I patchadd a patch,It tell me that there is no sufficient filesystem capacity. A: It seems like your root partition too small. Please check it availiable size. If it is small, I think you would better to reinstall the system. Please store all the data in the disk.

In the new installation, you need really to partitions, one is for

swap, and another is for /. The swap partition /tmp needs about 200M to 500M. Then all the left should be given to /.

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

A: You are right. If you have installed a bigger version of the same patch, it not necessary for you to install the smaller one. The bigger version will override the earlier one if it installed before. You need not worry about any collision.

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

A: To my knowledge, you can go to the following for a detailed info:

http://www.sun.com/software/solstice/em-products/network/sunnetmgr.html.

110 Q: 关于SUN机器root口令丢失问题,如何解决? A: 办法如下:

利用SOLARIS的启动盘来启动,然后把硬盘mount上去,修改硬盘上原etc目录 下的shadow文件,将root项里的password域内容删除,变成无密码。然后重新 启动主机,以无密码的root登陆后,重新设置root口令。具体步骤如下: 1.把你的solaris光盘放进cdrom 2.键入stop+a

3.当出现'ok'字样时,键入boot cdrom -s 4.cd /tmp/root

5.mkdir /tmp/root/xxx (xxx是什么鬼东西就无关紧要了)

6.mount /dev/dsk/c0t0d0s0 /tmp/root/xxx (在这里c0t0d0s0是你的root盘) 7.运行csh

8.setenv TERM vt220

9.cp /tmp/root/xxx/etc/shadow /tmp/root/xxx/shadow/shadow.bak

10.vi /tmp/root/xxx/shadow,并且将root项里的password域删除即可。

11.重启动,你就可以以无密码的root登陆了,登录后,更改root的密码。

111 Q: In solaris 2.6. when i use command \ CDE will be killed and the eviroment will change to CDE login. I looked up the man manual about \ can use the command\

solaris7 and solairs 8, with common id,i can't use the common.can you tell me why i can execute \ A: Just see the access mode of /usr/sbin/killall. If you can use it

with a common account identity, the access mode should be x-rsx-rx-r. If you can not use it in a common account identity, the mode should be x-r--r--r. You can change the mode as you like, whenever in 2.6, or 2.7 or 2.8.

112 Q: I downloaded the SDM2.3 from the Download Center of \ ,read the White Paper and web detailed describing.But it is only the outlook of the software. I need the detailed document about how to integrated my own network management application to Solstice. A: I transfer this messag to Sun Service in Guangdong.

113 Q: 请问有没有磁盘管理工具。我们有一台E450,有5块硬盘,想做RAID,但是没有工 具.

A: If the machine's OS is solaris 2.8, the storage management software is also installed in you machine. You can make the RAID by issuing the command family: /usr/sbin/meta*; If you are not so familiar with these commands. I can do it for you. or you can use solstice disksuite, it is a GUI tool.

114 Q: 怎样强制更改NIS客户端的本地NIS数据表?有时候NIS客户端和NIS服务器端有 时会出现不一致的情况.NIS服务器和NIS slave 服务器也会出现这种情况。

A: 你可以用yppush和 ypxfr 来做这种工作,更常见的方法是把它们写进cron,定 期更新,具体步骤请查阅Answerbook.

115 Q: 为了将工作站设为从DHCP动态分配IP,并且将主机名由\改为原名 修改了/etc/init.d/rootusr,将dhcpinfo后面三行(不是四行)注释掉; hostname=`/sbin/dhcpinfo Hostname` # case $? in

# 0) [ -z \ # 2) try_dhcp=no ;; esac

重启后,提示:

本文来源:https://www.bwwdw.com/article/47ud.html

Top