千家信息网

Solaris 10 进程管理

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,命令说明手册页ps、pgrep、prstat、pkill检查系统中活动进程的状态,并显示有关这些进程的详细信息。ps(1)、pgrep(1) 和 prstat(1M)pkill功能与 pgrep 相同
千家信息网最后更新 2026年10月31日Solaris 10 进程管理

命令

说明

手册页

ps、pgrep、prstat、pkill

检查系统中活动进程的状态,并显示有关这些进程的详细信息。

ps(1)、pgrep(1) 和 prstat(1M)

pkill

功能与 pgrep 相同,但通过名称或其他属性来查找进程或向进程发送信号,然后终止进程。像 kill 命令一样向每个匹配的进程发送信号,而不列显进程 ID。

pgrep(1) 和 pkill(1)

kill(1)

pargs、preap

协助进行进程调试。

pargs(1) 和 preap(1)

dispadmin

列出缺省进程调度策略。

dispadmin(1M)

priocntl

为优先级类指定进程并管理进程优先级。

priocntl(1)

nice

更改分时进程的优先级。

nice(1)

psrset

将特定进程组绑定到一组处理器而非一个处理器。

psrset(1M)

使用 ps 命令

使用 ps 命令可以检查系统中活动进程的状态,并可显示有关进程的技术信息。此数据对于管理任务(例如,确定设置进程优先级的方式)很有用。

字段

说明

UID

进程所有者的有效用户 ID。

PID

进程 ID。

PPID

父进程 ID。

C

用于调度的处理器使用率。使用 -c 选项时,将不显示此字段。

CLS

进程所属的调度类,例如实时、系统或分时。只有 -c 选项包括此字段。

PRI

内核线程的调度优先级。数值越大,表示优先级越高。

NI

进程的 nice 数值,该数值对其调度优先级有影响。进程的 nice 值越高,意味着其优先级越低。

ADDR

proc 结构的地址。

SZ

进程的虚拟地址大小。

WCHAN

进程休眠的事件或锁定的地址。

STIME

以小时、分钟和秒表示的进程开始时间。

TTY

从中启动进程或其父级的终端。问号表示没有控制终端。

TIME

进程自开始以来使用的 CPU 时间总量。

CMD

生成进程的命令。

列出进程

可使用 ps 命令列出系统中的所有进程。

$ ps [-efc]

ps

只显示与您的登录会话关联的进程。

-ef

显示系统中正在执行的所有进程的全部信息。

-c

显示进程调度程序信息。

$ ps -ef

UID PID PPID C STIME TTY TIME CMD

root 0 0 0 18:04:04 ? 0:15 sched

root 5 0 0 18:04:03 ? 0:05 zpool-rpool

root 1 0 0 18:04:05 ? 0:00 /sbin/init

root 2 0 0 18:04:05 ? 0:00 pageout

root 3 0 0 18:04:05 ? 2:52 fsflush

root 6 0 0 18:04:05 ? 0:02 vmtasks

daemon 739 1 0 19:03:58 ? 0:00 /usr/lib/nfs/nfs4cbd

root 9 1 0 18:04:06 ? 0:14 /lib/svc/bin/svc.startd

root 11 1 0 18:04:06 ? 0:45 /lib/svc/bin/svc.configd

daemon 559 1 0 18:04:49 ? 0:00 /usr/sbin/rpcbind

netcfg 47 1 0 18:04:19 ? 0:01 /lib/inet/netcfgd

dladm 44 1 0 18:04:17 ? 0:00 /sbin/dlmgmtd

netadm 51 1 0 18:04:22 ? 0:01 /lib/inet/ipmgmtd

root 372 338 0 18:04:43 ? 0:00 /usr/lib/hal/hald-addon-cpufreq

root 67 1 0 18:04:30 ? 0:02 /lib/inet/in.mpathd

root 141 1 0 18:04:38 ? 0:00 /usr/lib/pfexecd

netadm 89 1 0 18:04:31 ? 0:03 /lib/inet/nwamd

root 602 1 0 18:04:50 ? 0:02 /usr/lib/inet/inetd start

root 131 1 0 18:04:35 ? 0:01 /sbin/dhcpagent

daemon 119 1 0 18:04:33 ? 0:00 /lib/crypto/kcfd

root 333 1 0 18:04:41 ? 0:07 /usr/lib/hal/hald --daemon=yes

root 370 338 0 18:04:43 ? 0:00 /usr/lib/hal/hald-addon-network-discovery

root 159 1 0 18:04:39 ? 0:00 /usr/lib/sysevent/syseventd

root 236 1 0 18:04:40 ? 0:00 /usr/lib/ldoms/drd

root 535 1 0 18:04:46 ? 0:09 /usr/sbin/nscd

root 305 1 0 18:04:40 ? 0:00 /usr/lib/zones/zonestatd

root 326 1 0 18:04:41 ? 0:03 /usr/lib/devfsadm/devfsadmd

root 314 1 0 18:04:40 ? 0:00 /usr/lib/dbus-daemon --system

查看进程

root@solaris10:/ # prstat

PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP

751 noaccess 181M 120M sleep 59 0 0:32:53 0.0% java/19

2513 root 3804K 2944K cpu0 59 0 0:00:00 0.0% prstat/1

641 root 48M 15M sleep 59 0 0:03:29 0.0% Xorg/1

762 root 11M 7012K sleep 59 0 0:01:59 0.0% dtgreet/1

2465 root 6388K 3628K sleep 59 0 0:00:00 0.0% sshd/1

685 root 3388K 1900K sleep 59 0 0:00:00 0.0% devfsadm/6

582 root 2488K 1296K sleep 59 0 0:00:00 0.0% snmpdx/1

594 root 3276K 1448K sleep 59 0 0:00:00 0.0% dmispd/1

555 root 8380K 1724K sleep 59 0 0:00:08 0.0% sendmail/1

2475 root 2932K 1776K sleep 59 0 0:00:00 0.0% bash/1

560 root 9476K 5676K sleep 59 0 0:00:02 0.0% snmpd/1

2471 root 1452K 892K sleep 59 0 0:00:00 0.0% sh/1

636 root 5584K 1448K sleep 59 0 0:00:00 0.0% dtlogin/1

638 root 2560K 792K sleep 59 0 0:00:00 0.0% fbconsole/1

557 smmsp 8388K 1488K sleep 59 0 0:00:00 0.0% sendmail/1

511 root 3880K 1248K sleep 59 0 0:00:00 0.0% sshd/1

517 root 14M 10M sleep 59 0 0:00:00 0.0% fmd/17

515 root 4004K 1732K sleep 59 0 0:00:00 0.0% syslogd/14

494 root 2532K 968K sleep 59 0 0:00:00 0.0% automountd/2

495 root 2820K 1560K sleep 59 0 0:00:01 0.0% automountd/3

412 root 2072K 676K sleep 59 0 0:00:00 0.0% smcboot/1

384 root 1440K 664K sleep 59 0 0:00:00 0.0% utmpd/1

149 root 1800K 1028K sleep 59 0 0:00:00 0.0% powerd/3

383 root 6268K 3240K sleep 59 0 0:00:04 0.0% inetd/4

414 root 2072K 676K sleep 59 0 0:00:00 0.0% smcboot/1

198 root 3700K 2412K sleep 59 0 0:00:00 0.0% picld/4

395 root 2444K 1276K sleep 59 0 0:00:00 0.0% ttymon/1

342 daemon 2428K 1360K sleep 60 -20 0:00:00 0.0% lockd/2

337 daemon 2780K 1604K sleep 59 0 0:00:00 0.0% statd/1

333 daemon 2448K 1304K sleep 60 -20 0:00:00 0.0% nfs4cbd/2

263 root 2240K 748K sleep 59 0 0:00:00 0.0% iscsid/2

109 daemon 4256K 2048K sleep 59 0 0:00:00 0.0% kcfd/3

112 root 5028K 1948K sleep 59 0 0:00:00 0.0% syseventd/15

375 root 2448K 1200K sleep 59 0 0:00:00 0.0% ttymon/1

410 root 2072K 976K sleep 59 0 0:00:00 0.0% smcboot/1

108 root 6372K 2852K sleep 59 0 0:00:12 0.0% nscd/31

282 root 2768K 1000K sleep 59 0 0:00:00 0.0% cron/1

545 root 3264K 2224K sleep 59 0 0:00:00 0.0% vold/6

374 root 2080K 928K sleep 59 0 0:00:00 0.0% sac/1

335 daemon 4696K 1148K sleep 59 0 0:00:00 0.0% nfsmapid/3

9 root 9432K 7560K sleep 59 0 0:00:12 0.0% svc.configd/16

Total: 47 processes, 197 lwps, load averages: 0.00, 0.00, 0.00

显示有关进程的信息

# pgrep cron 获得 cron 进程的进程 ID

4780

# pwdx 4780 显示 cron 进程的当前工作目录

4780: /var/spool/cron/atjobs

# ptree 4780 显示包含 cron 进程的进程树

4780 /usr/sbin/cron

# pfiles 4780 显示 fstat 和 fcntl 信息

4780: /usr/sbin/cron

Current rlimit: 256 file descriptors

0: S_IFCHR mode:0666 dev:290,0 ino:6815752 uid:0 gid:3 rdev:13,2

O_RDONLY|O_LARGEFILE

/devices/pseudo/mm@0:null

1: S_IFREG mode:0600 dev:32,128 ino:42054 uid:0 gid:0 size:9771

O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE

/var/cron/log

2: S_IFREG mode:0600 dev:32,128 ino:42054 uid:0 gid:0 size:9771

O_WRONLY|O_APPEND|O_CREAT|O_LARGEFILE

/var/cron/log

3: S_IFIFO mode:0600 dev:32,128 ino:42049 uid:0 gid:0 size:0

O_RDWR|O_LARGEFILE

/etc/cron.d/FIFO

4: S_IFIFO mode:0000 dev:293,0 ino:4630 uid:0 gid:0 size:0

O_RDWR|O_NONBLOCK

5: S_IFIFO mode:0000 dev:293,0 ino:4630 uid:0 gid:0 size:0

O_RDWR

控制进程

终止进程

$ pkill [signal] process

signal

当 pkill 命令行语法中不包含任何信号时,使用的缺省信号为 -15 (SIGKILL)。将 -9 信号 (SIGTERM) 与 pkill 命令一起使用,可以确保进程快速终止。但是,不应使用 -9 信号来中止特定进程,例如数据库进程或 LDAP 服务器进程。这样做可能丢失数据。

process

是要停止的进程的名称。

# kill [signal-number] pid

signal

当 kill 命令行语法中不包括任何信号时,使用的缺省信号为 -15 (SIGKILL)。将 -9 信号 (SIGTERM) 与 kill 命令一起使用,可以确保进程快速终止。但是,不应使用 -9 信号来中止特定进程,例如数据库进程或 LDAP 服务器进程。这样做可能丢失数据。

pid

是要终止的进程的进程 ID。


0