跟小段一起学Solaris(9)---进程管理
我们都知道,在Windows环境中,查看当前系统进程的是任务管理器-进程面板。这里能显示出进程的名字、cpu占用率、内存占用率、所属用户。但是在Solaris中却不一样了,我们来一起看看吧。
查看系统进程
进程是系统中运行的程序。所有的进程都被分配给一个唯一的进程标示符(PID)号,用于让kernel跟踪和管理进程。PID号是root用户和其他用户用于标示和控制他们的进程。
使用CDE进程管理
Solaris OS Common Desktop Environment (CDE)提供进程管理用于监视和控制本地系统运行的进程。
我们也能够在命令行下使用CDE进程管理:
# /usr/dt/bin/sdtprocess &
使用prstat命令
使用prstat命令检查和显示关于系统中活动进程的信息。这个命令也可以显示指定进程的信息,UID,(CPU)IDs,或者处理器设置。默认的prstat命令显示的所有信息是以CPU占用率进行排序的。执行prstat命令:
退出prstat命令按q键。
prstat报告的内容
PID 进程的PID号
USERNAME 登陆用户名或者进程UID的所有者
SIZE 进程总体虚拟内存的大小
RSS 进程驻留大小设置Kbyte Mbyte Gbyte。
STATE cpu进程运行在那个CPU上。Sleep进程等待一个事件的完成。Run进程在运行队列中zombie进程停止但是父进程并不等待stop进程停止。
PRI 进程的优先级
NICE 计算优先级的数值
TIME 进程累积运行时间
CPU 进程最近占用CPU的百分比
PRCESS/NLWP 进程名/在进程中的轻量进程号
可以使用priocntl命令来分配进程的优先级和管理进程的优先权。Nice命令只是支持和兼容以前的solaris OS版本。priocntl命令提供更加灵活的进程管理。
prstat的命令参数
-a 同一时间分开显示关于进程和用户的报告。
-c 在以前报告的基础上持续输出报告
-n proc 限制输出的行数
-p pidlist 在报告列表中只给出进程的PID。
-s key 按照给出的关键字进行降序排列。这个5个关键字包括cpu time size rss pri 一个时间我们可以只使用一个关键字。
-S key 按照给出的关键字进行升序排列。
-t 任何一个用户使用情况的汇总报告
-u euidlist 只报告EUID的进程
-U uidlist 报告真实的UID进程
Kill僵死进程
我们可以使用kill命令和pkill命令发送信号到一个或多个运行的进程。这些命令可以kill进程。
使用kill或者pkill命令停止一个或者多个进程:
命令格式如下:kill -signal PID
显示kill命令所:kill -l
pkill的命令格式:pkill -signal Process
在我们停止一个进程之前,我们必须知道进程的名字或者PID。使用ps或者pgrep命令来定位进程的PID。
下面的例子使用pgrep命令来定位sendmail进程的PID。
结束进程以后,sendmail服务重启,重新建立进程,但是PID已经改变。
下面的例子使用ps(process status、进程状态)和kill命令定位和停止sendmail进程。
停止PID为1423的进程:
同时停止一个或者多个进程使用下面的命令:
# kill -signal PID PID PID PID
# pkill -signal process process
使用kill命令在没有信号的时候默认是发送信号15给进程。这个信号通常是让进程停止。
信号数 信号名 作用 默认工作
1 SIGHUP Hangup Exit
2 SIGINT Interrupt Exit
9 SIGKILL Kill Exit
15 SIGTERM Terminate Exit
1,SIGHUP:是由于电话线或者连接终端停止引起的信号挂起。一些确切的进程比如:inetd,in.named进程挂起引起需要重新读配置文件。
2,SIGINT:通常是ctrl+c键组合来中断进程。
9,SIGKILL:kill进程。进程不能忽略这个信号。
15,SIGTERM:进程停止信号。一些进程忽略这个信号。
一些进程能够忽略信号15。进程不响应信号15发出的停止信号可以通过强迫使用kill或者pkill命令的信号9。
#kill -9 PID
#pkill -9 process
进程管理是非常重要的,比如以后某个服务假死的话,我们就要kill –9 process 了,对吧?O(∩_∩)O哈哈~
转载于:https://blog.51cto.com/xiaoduan/150580