服务器 频道

Solaris的中文命令参考手册之三

  进程管理
  
  ps
  
  字段概述:
  F十六进制标志,它们加起来表示进程的当前状态。
  如下所述:00 进程终止,而且它们在进程表中的空间已释放。01 系统进程,长驻内存02 进程被父进程跟踪04 进程被父进程跟踪而且已被停止08 该进程无法被信号量唤醒10 该进程当前在内存中,而且被锁定直到一个事件完成20 进程不能被交换出
  
  S 进程当前状态,由以下字母之一显示:
  O 当前正在处理器上运行
  S 睡眠;等待I/O事件完成
  R 运行结束I 空闲;进程被创建
  Z 僵死。进程已终止
  T由于父进程跟踪而停止
  X 等待更多的内存
  UID进程所有者的用户ID
  PID进程ID
  PPID父进程ID
  C 进程的CPU使用情况(即进程占CPU时间的百分比)
  PRI 进程优先权方案。较大的数表示较低的优先权
  NI 进程的nice值,该值与优先权方案相关联。使一个进程“nicer”意指降低该进程的优先权,以使它不会用尽CPU的时间
  SZ进程请求的虚拟内存量。这是该系统对内存需求的一个好的指标。
  TTY 启动进程(或者父进程)的终端。带问号的进程无控制终端(通常为系统进程)
  TIME自进程启动以来占CPU时间总量
  COMD产生进程的命令
  # ps -f
  UID PID PPID C STIME TTY TIME CMD
  keven 360 358 0 19:19:19 pts/2 0:00 -csh
  keven 477 360 0 19:28:14 pts/2 0:00 ps -f
  # ps -u wing //特定用户
  PID TTY TIME CMD
  368 pts/3 0:00 sh
  # ps
  PID TTY TIME CMD
  360 pts/2 0:00 csh
  475 pts/2 0:00 ps
  # ps -e
  PID TTY TIME CMD
  0 ? 0:01 sched
  1 ? 0:00 init
  2 ? 0:00 pageout
  3 ? 0:00 fsflush
  328 ? 0:00 sac
  331 ? 0:00 ttymon
  153 ? 0:00 rpcbind
  
  # ps -ecl //PRI为进程优先权,这里98为最高
  F S UID PID PPID CLS PRI ADDR SZ WCHAN TTY TIME CMD
  19 T 0 0 0 SYS 96 fec287cc 0 ? 0:00 sched
  8 S 0 1 0 TS 59 de7a8808 319 dea06e16 ? 0:00 init
  19 S 0 2 0 SYS 98 de7a8108 0 fec4d4b8 ? 0:00 pageout
  19 S 0 3 0 SYS 60 de7a7a08 0 fecea0bc ? 0:01 fsflush
  8 S 0 329 1 TS 59 de7a7308 448 deac8d68 ? 0:00 sac
  8 S 0 256 1 TS 59 de7a6c08 1084 deeb7f02 ? 0:00 sendmail
  
  $ ps -eaf
  UID PID PPID C STIME TTY TIME CMD
  root 0 0 0 19:18:44 ? 0:01 sched
  root 1 0 0 19:18:44 ? 0:00 /etc/init -
  root 2 0 0 19:18:44 ? 0:00 pageout
  root 3 0 0 19:18:44 ? 0:00 fsflush
  root 328 1 0 19:19:10 ? 0:00 /usr/lib/saf/sac -t 300
  root 331 328 0 19:19:10 ? 0:00 /usr/lib/saf/ttymon
  root 153 1 0 19:18:53 ? 0:00 /usr/sbin/rpcbind
  
  #ps -eaf |grep wing
  root 317 1 0 19:19:10 ? 0:00 /usr/lib/dmi/snmpXdmid -s wing
  root 329 1 0 19:19:10 console 0:00 /usr/lib/saf/ttymon -g -h -p wing
  console login: -T sun-color -d /dev/console
  wing 368 366 0 19:19:47 pts/3 0:00 -sh
  
  用法:ps [ -aAdeflcjLPy ] [ -o 格式 ] [ -t 项列表 ]
  [ -u 用户列表 ] [ -U 用户列表 ] [ -G 组列表 ]
  
  [ -p proclist ] [ -g pgrplist ] [ -s sidlist ]
  选项 意义 功能
  ps 无选项 显示在当前shell和终端窗口中的用户进程信息
  ps -e every 显示系统中每一个进程的信息
  ps -f full 生成一个长列表,显示每个进程的所有可用信息
  ps -u userid user 显示特定用户的所有进程信息
  $ ps -u wing //wing为用户名
  PID TTY TIME CMD
  368 pts/3 0:00 sh
  494 pts/3 0:00 ps
  $ ps -U wing
  PID TTY TIME CMD
  368 pts/3 0:00 sh
  495 pts/3 0:00 ps
  $ ps -G user //user为组名
  PID TTY TIME CMD
  360 pts/2 0:00 csh
  
  # priocntl -l
  CONFIGURED CLASSES
  ==================
  
  SYS (System Class) 系统
  
  TS (Time Sharing) 分式共享
  Configured TS User Priority Range: -60 through 60
  
  FX (Fixed priority)
  Configured FX User Priority Range: 0 through 60
  
  IA (Interactive) 交互
  Configured IA User Priority Range: -60 through 60
  对于分式共享级,用户提供的优先权范围为:-20~+20
  
  # ps -ecl
  F S UID PID PPID CLS PRI ADDR SZ WCHAN TTY TIME CMD
  19 T 0 0 0 SYS 96 fec287cc 0 ? 0:00 sched
  8 S 0 1 0 TS 59 de7a8808 319 dea06e16 ? 0:00 init
  
  
  pgrep //查看进程
  # pgrep -lf inetd
  616 /usr/sbin/inetd -s -t
  
  $ pgrep -l lp
  217 lpsched
  
  
  
  
  kill
  
  signal:
  1 暂停
  2 中断
  3 退出
  4 非法指令
  5 跟踪中断
  6 Abort
  7 EMT指令(Emulation竞争trap)
  8 浮点格式的异常情况
  9 kill(不能被捕获或忽略)
  10 通道错误
  11不合法的内存区段
  12 错误系统调用
  13 写入不可读的连通管道
  14 alarm clock
  15 软件结束信号
  16 用户定义的信号1
  17用户定义的信号2
  18 子进程状态被改变
  19 电源坏掉
  20窗口(Window)的大小被改变
  21Urgent(紧急的)Socket Condition
  22 Pollable(可查询的)event
  23 停止
  24 由用户终止
  25 继续执行
  26 停止终端输入
  27 停止终端输出
  28 virtual Timer expired
  29 Profiling time expired
  30 超过CPU时间
  31 超过文件大小限制
  32 Socket I/O possible
  
  #kill -9 368 //强行杀死一个进程
  #kill 368 //杀死一个进程,使用15为默认值,为软杀死
  kill -HUP ID //重启一个进程
  
  $sleep 500&
  $jobs
  [1]+Running sleep 500
  $sleep 500
  ^z
  [1]+stopped sleep 00
  $jobs
  [1]+stopped sleep 500
  $bg%1
  [1]+Running sleep 500
  $kill %1
  [1]+ Terminated sleep 500
  $jobs
  $
  
  
  java
  # java -version
  java version "1.4.0_03"
  Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0
  Java HotSpot(TM) Client VM (build 1.4.0_03-b04, mixed mode)
  
  
  
  
  
  proc工具
  
  $ ps
  PID TTY TIME CMD
  806 pts/3 0:00 ps
  368 pts/3 0:00 sh
  $ pflags 368
  368: -sh
  data model = _ILP32 flags = PR_ORPHAN
  /1: flags = PR_PCINVAL
  
  % pmap 823 //进程的地址空间分配,和需要执行的库
  823: -csh
  08043000 20K rw--- [ stack ]
  08050000 128K r-x-- /usr/bin/csh
  08070000 12K rwx-- /usr/bin/csh
  08073000 68K rwx-- [ heap ]
  DD9C0000 8K r-x-- /usr/lib/locale/zh_CN.GB18030/methods_zh_CN.GB18030.so.2
  DD9D1000 4K rwx-- /usr/lib/locale/zh_CN.GB18030/methods_zh_CN.GB18030.so.2
  DD9E0000 324K r-x-- /usr/lib/locale/zh_CN.GB18030/zh_CN.GB18030.so.2
  DDA40000 8K rwx-- /usr/lib/locale/zh_CN.GB18030/zh_CN.GB18030.so.2
  DDA60000 4K rwx-- [ anon ]
  DDA70000 628K r-x-- /usr/lib/libc.so.1
  DDB1D000 24K rwx-- /usr/lib/libc.so.1
  DDB23000 4K rwx-- /usr/lib/libc.so.1
  DDB30000 152K r-x-- /usr/lib/libcurses.so.1
  DDB66000 28K rwx-- /usr/lib/libcurses.so.1
  DDB6D000 8K rwx-- /usr/lib/libcurses.so.1
  DDB80000 4K r-x-- /usr/lib/libdl.so.1
  DDB90000 292K r-x-- /usr/lib/ld.so.1
  DDBE9000 16K rwx-- /usr/lib/ld.so.1
  DDBED000 8K rwx-- /usr/lib/ld.so.1
  total 1740K
  
  $ pldd 830 //与每个进程链接的动态库列表
  830: -sh
  /usr/lib/libgen.so.1
  /usr/lib/libc.so.1
  /usr/lib/libdl.so.1
  /usr/lib/locale/zh_CN.GB18030/zh_CN.GB18030.so.2
  /usr/lib/locale/zh_CN.GB18030/methods_zh_CN.GB18030.so.2
  
  $ psig 830 //与进程相关的的信号列表
  830: -sh
  HUP caught done 0
  INT caught 0x8059a30 0
  QUIT caught 0x8059a30 0
  ILL caught done 0
  TRAP caught done 0
  ABRT caught done 0
  EMT caught done 0
  FPE caught done 0
  KILL default
  BUS caught done 0
  SEGV caught 0x8059f70 ONSTACK,SIGINFO
  
  $ pstack 830 //以十六进制格式查看进程堆栈跟踪
  830: -sh
  ddacedf7 waitid (0, 353, 8047d40, 83)
  ddaeeea7 _waitpid (353, 8047df8, 80) + 66
  ddb30581 waitpid (353, 8047df8, 80) + 21
  08062319 ???????? (8078c44)
  08062cef postjob (353, 1) + ce
  0805d1e9 execute (8079374, 0, 0) + 801
  08055b61 ???????? (0)
  080559b5 main (1, 8047eb4, 8047ebc) + 4d9
  08055427 ???????? ()
  
  $ pfiles 830 //每个进程所打开的所有文件
  830: -sh
  Current rlimit: 256 file descriptors
  0: S_IFCHR mode:0620 dev:102,0 ino:853 uid:1001 gid:7 rdev:24,2
  O_RDWR
  1: S_IFCHR mode:0620 dev:102,0 ino:853 uid:1001 gid:7 rdev:24,2
  O_RDWR
  2: S_IFCHR mode:0620 dev:102,0 ino:853 uid:1001 gid:7 rdev:24,2
  O_RDWR
  
  $ pwdx 830 //获取该进程当前的工作目录
  830: /export/home/wing
  $ ptree 830 //获父进程与子进程的关系
  179 /usr/sbin/inetd -s
  828 in.telnetd
  830 -sh
  854 ptree 830
  
  
  
  lsof 工具-需下载安装,本身没有自带
  
  
0
相关文章