服务器 频道

solaris基础和常用知识FAQ下篇

  111 Q: In solaris 2.6. when i use command "killall" ,all process started in
  CDE will be killed and the eviroment will change to CDE login. I
  looked up the man manual about "killall" ,it told me that "only root
  can use the command".But I really use it with common id.In
  solaris7 and solairs 8, with common id,i can''t use the common.can
  you tell me why i can execute "killall" successfully in solaris 2.6?
  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 "www.sun.com"
  ,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,并且将主机名由"unknown"改为原名
  修改了/etc/init.d/rootusr,将dhcpinfo后面三行(不是四行)注释掉;
  hostname=`/sbin/dhcpinfo Hostname`
  # case $? in
  # 0) [ -z "$hostname" ] && hostname=''unknown'' ;;
  # 2) try_dhcp=no ;;
  esac
  重启后,提示:
  /sbin/rcs:ysntax error at line 143 : ''esac'' unexpected
  INIT:cannot creat /var/adm/utmp or /var/adm/utmpx
  INIT:SINGLE USER MODE
  输入root口令后,只能运行在单用户模式,且vi、ls等都不能用(#vi:not found)
  如何才能打开/etc/init.d/rootusr文件进行修改,恢复正常状态。
  A: 请找一个SOLARIS的安装启动盘,使用以下方法可以修改rootusr文件,步骤如
  下:
  1.把你的solaris光盘放进cdrom
  2.键入stop+a
  3.当出现''ok''字样时,键入boot cdrom -s
  4.cd /tmp
  5.mkdir /tmp/xxx (xxx是什么东西无关紧要,随便取一个名字,如test)
  6.mount /dev/dsk/c0t0d0s0 /tmp/xxx (在这里c0t0d0s0是你的root盘)
  7.运行csh
  8.setenv TERM vt220
  9.vi /tmp/xxx/etc/init.d/rootusr,把esac那行也注释掉即可。
  10.把solaris光盘拿出,reboot,重启动即可。
  
  116 Q: 一台Ultra60工作站,其固定IP为10.11.105.247,用ifconfig hme0 dhcp
  start总是失败,如下所示。
  # netstat -a|grep 4999
  # ifconfig hme0 dhcp start
  May 7 20:11:11 hwMusa01 dhcpagent[478]: ERROR! Address 10.11.105.147
  is already in use ifconfig: internal error in DHCP agent
  # netstat -a|grep 4999
  localhost.4999 *.* 0 0 0 0 LISTEN
  localhost.4999 localhost.1023 32768 0 32768 0 TIME_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 | grep dhcp
  会出现一到两个进程号。验证这些进程是否占用了4999是看进程打开的文件:
  # /usr/proc/bin/pfiles #pid
  早到进程然后杀掉。这样就可以继续启动Client 端的dhcp申请。注意,修改
  服务器的设置使新的申请可以成功。
  
  117 Q: 我们有一台Natra T1,它的/tmp目录已经长到90%,如果目录满了是否会使系统
  运行异常.(因为我们运行的业务不能停,故不能重启SUN机器来让系统清空该目
  录,也不能直接清空该目录,应为应用程序正在运行.)下面是一些数据:
  
  # df -k
  Filesystem kbytes used avail capacity Mounted on
  /proc 0 0 0 0% /proc
  /dev/dsk/c0t0d0s0 1258491 51942 1143625 5% /
  /dev/dsk/c0t0d0s6 1612343 500741 1063232 33% /usr
  fd 0 0 0 0% /dev/fd
  /dev/dsk/c0t0d0s3 33099 9211 20579 31% /var
  /dev/dsk/c0t0d0s7 13550703 838475 12576721 7% /export/home
  /dev/dsk/c0t0d0s5 30743 10319 17350 38% /opt
  /dev/dsk/c0t0d0s1 548687 369368 124451 75% /usr/openwin
  swap 627864 563360 64504 90% /tmp
  # cd tmp
  # ls
  ps_data
  # ls -a -l
  total 98
  drwxrwxrwt 6 sys sys 443 May 7 15:29 .
  drwxr-xr-x 22 root root 512 Mar 20 17:45 ..
  drwxrwxr-x 2 root root 176 Feb 27 23:18 .X11-pipe
  drwxrwxr-x 2 root root 176 Feb 27 23:18 .X11-unix
  drwxrwxrwx 2 root root 179 Feb 27 23:18 .pcmcia
  drwxrwxrwt 2 root root 327 Feb 27 23:18 .rpc_door
  -rw-rw-r-- 1 root sys 5056 Feb 27 23:18 ps_data
  # cd .pcmcia
  # ls -a -l
  total 32
  drwxrwxrwx 2 root root 179 Feb 27 23:18 .
  drwxrwxrwt 6 sys sys 443 May 7 15:35 ..
  prw-rw-rw- 1 root root 0 Feb 27 23:18 pcram
  # cd ..
  # pwd
  /tmp
  # cd .rpc_door
  # ls -a -l
  total 32
  drwxrwxrwt 2 root root 327 Feb 27 23:18 .
  drwxrwxrwt 6 sys sys 443 May 7 15:36 ..
  Drw-r--r-- 1 root root 0 Feb 27 23:18 .rpc_100029.1
  Drw-r--r-- 1 root root 0 Feb 27 23:18 .rpc_100029.2
  Drw-r--r-- 1 root root 0 Feb 27 23:18 .rpc_100029.3
  # cd ..
  # cd .X11-pipe
  # ls -a -l
  total 32
  drwxrwxr-x 2 root root 176 Feb 27 23:18 .
  drwxrwxrwt 6 sys sys 443 May 7 15:37 ..
  -rw-rw-rw- 1 root root 0 Feb 27 23:18 X0
  # cd ..
  # ls
  ps_data
  # cd .X11-unix
  # ls -al
  total 32
  drwxrwxr-x 2 root root 176 Feb 27 23:18 .
  drwxrwxrwt 6 sys sys 443 May 7 15:38 ..
  srwxrwxrwx 1 root root 0 Feb 27 23:18 X0
  等待您的回答,谢谢
  
  A: 我认为是系统统计信息错误的, 本人的经验是当/tmp的使用率超过10%时,系统就
  变的很慢了。出现这种情况,首先,要检查系统中运行的程序有没有不停分配内存,
  却没有释放(指自己开发的程序)。另外看一下系统对/tmp的swap交换情况。使用工
  具sar 和iostat 都可以看到。关于sar和iostat的用法, 可以看man即可。
  
  118 Q: 有一用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");
  运行环境是ULTRA 60 ,Solaris 2.6 ,安装了中文环境。编译环境是SUN C++ 4.0 。
  还怀疑与LANG 相关,曾试过设置为zh ,chinese 等也不行,请教此问题如何解决?
  
  A: 实际上,关于选择字体和字符集可以看<Font Administrator Guide>这个资料,使
  用系统提供的标准工具来从中间找到系统中存在的字体和字体的名称。这个资料在
  Answer Book 的System Administration Collection 中。 实际上,上面的问题不
  出现在字体的选择上面, 而是在MOTIF中在选择框的使用设置中还要设置一次字体
  
  119 Q: 请问SUN的E250以上机器支持“双机热备+磁盘阵列”的使用方式吗?Ultra系
  列的机器是否也能支持呢?
  A: SUN的E250以上机器支持“双机热备+磁盘阵列”的使用方式,可以使用
  SunCluster软件实现;Netrat系列电信服务器也支持;Ultra系列的机器,不
  在支持的列表中。但是,“双机热备+磁盘阵列”的具体含义应该搞清楚。推
  荐的文档在sun cluster collection 中。
  
  120 Q: 我在一个JAVA程序中打开50个SOCKET端口,结果出现异常:
  java.net.SocketException:Too many open files
  请问如何解决此问题?谢谢!另外,请问在一个JAVA进程中可以同时启动的线
  程数是多少?最大线程数受什么限制?能否达到240个线程?谢谢!如上问题
  如果可以通过修改配置来解决的话,会有什么样的负面影响?
  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 1024.
  You should reboot the machine.
  Two: Use the system command: ulimit
  $ulimit -n #n
  Note: You should use B-shell.
  And using the same terminal session(in the same terminal
  window) to run the your application program( to guarantee your
  application process is a child process of the setting
  terminal.)You can man ulimit to see the detailed usaged.
  The disadvantage brought by incread the file limite for a
  process or the whole system is increasing the system memory
  usage. But, for today''s machine, this disadvantage is not too
  expensive. (William said:) There is no limit for max open
  socket number in Java. But the operating system has a limit for
  max open file descriptors.A socket resource is treated as a
  file descriptor in Unix. The previous email answered your
  question. You can try as said.
  
  121 Q: 我想把一个HP平台上运行的B SHELL 脚本在SOLARIS 2。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`
  
0
相关文章