千家信息网

Solaris 10 进程管理

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

命令

说明

手册页

pspgrepprstatpkill

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

ps(1)pgrep(1) prstat(1M)

pkill

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

pgrep(1) pkill(1)

kill(1)

pargspreap

协助进行进程调试。

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