分享
 
 
 

FreeBSD连载(24):查看系统状态

王朝system·作者佚名  2006-11-23
窄屏简体版  字體: |||超大  

进程管理在系统shell提示下,使用者可以输入各种命令来执行相应的工作。每个命令通常从终端键盘中获取输入,将输出打印到终端屏幕上,Unix使用标准输入stdio和标准输出stdout,来表示每个命令的输入和输出,还使用一个标准错误输出stderr用于输出错误信息。这三个标准输入输出系统缺省与终端设备相联系在一起,但是也可以使用管道的概念将它们重新定向,从一个文件或另一个命令中获取输入,输出到另外的文件中或作为另一个命令的输入等。

$ ls ls.out

$ cat

$ ls -l | grep mbox

FreeBSD可以同时运行多个进程,在shell下直接输入命令十,shell将进程放到前台执行。如果要将进程放到后台执行,需要在命令行的结尾加上一个 “&” 符号。下面的命令从后台执行,从ftp.isc.org下载文件。

$ wget ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &

当程序已经在前台执行的时候,可以使用^Z将这个程序挂起,暂停执行。然后可以使用bg命令将这个挂起的程序放到后台执行,或者使用fg将某个在后台或挂起的进程放到前台执行。

当在后台运行了程序的时候,可以用jobs命令来查看后台作业的状态。在有多个后台程序时,要使用来参数的fg命令将不同序号的后台作业切换到前台上运行。

$ jobs

[1]+ Running wget ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz &

$ fg %1

wget ftp://ftp.isc.org/pub/inn/inn-1.7.2.tar.gz

在启动了多个程序之后,可以使用ps命令来查看这些进程及其状态。

$ ps

PID TT STAT TIME COMMAND

501 p2 Ss 0:00.24 -bash (bash)

988 p2 R+ 0:00.00 ps

765 p3 Is+ 0:00.28 -bash (bash)

230 v0 Is+ 0:00.14 -bash (bash)

显示的结果包括进程的标识号PID,控制终端TT(p0表示控制终端为ttyp0),进程的状态STAT,进程使用的处理器时间TIME和具体的命令。

可以给ps命令加上参数,来获得更多的输出内容,以下命令将输出系统中所有的进程:

$ ps waux

USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND

wb 989 0.0 0.4 400 236 p2 R+ 5:48PM 0:00.00 ps -aux

root 1 0.0 0.1 496 72 ?? Is 10:12PM 0:00.02 /sbin/init --

root 2 0.0 0.0 0 0 ?? DL 10:12PM 0:07.05 (pagedaemon)

root 3 0.0 0.0 0 0 ?? DL 10:12PM 0:00.20 (vmdaemon)

root 4 0.0 0.0 0 0 ?? DL 10:12PM 0:04.27 (syncer)

root 27 0.0 0.0 204 0 ?? IWs - 0:00.00 (adjkerntz)

root 91 0.0 0.5 820 328 ?? Is 2:12PM 0:00.82 syslogd

daemon 100 0.0 0.0 792 0 ?? IWs - 0:00.00 (portmap)

root 131 0.0 0.3 864 164 ?? Is 2:12PM 0:00.06 inetd

root 134 0.0 0.3 980 192 ?? Is 2:12PM 0:00.11 cron

root 138 0.0 0.6 1252 380 ?? Is 2:12PM 0:00.11 sendmail: accepti

wb 230 0.0 1.1 1540 668 v0 Is+ 2:12PM 0:00.14 -bash (bash)

root 231 0.0 0.0 824 0 v1 IWs+ - 0:00.00 (getty)

root 232 0.0 0.0 824 0 v2 IWs+ - 0:00.00 (getty)

root 500 0.0 0.9 876 524 ?? Ss 4:19PM 0:01.78 telnetd

wb 501 0.0 1.4 1540 888 p2 Ss 4:19PM 0:00.24 -bash (bash)

root 698 0.0 1.5 1644 900 ?? Is 4:49PM 0:00.02 /usr/local/sbin/s

root 700 0.0 1.2 1308 748 ?? Ss 4:49PM 0:00.22 /usr/local/sbin/n

root 702 0.0 3.4 2900 2112 ?? S 4:49PM 0:00.32 /usr/local/sbin/s

root 764 0.0 0.9 880 540 ?? Is 5:10PM 0:00.22 telnetd

wb 765 0.0 1.7 1536 1052 p3 Is+ 5:10PM 0:00.28 -bash (bash)

root 0 0.0 0.0 0 0 ?? DLs 10:12PM 0:00.02 (swapper)

当用户启动一个进程的时候,这个进程是运行在前台,使用与相应控制终端相联系的标准输入、输出进行输入和输出。即使将进程的输入输出重定向,并将进程放在后台执行,进程仍然和当前终端设备有关系。正因为如此,在当前的登录会话结束时,控制终端设备将和登录进程相脱离,那么系统就向所有与这个终端相联系的进程发送SIGHUP的信号,通知进程线路已经挂起了,如果程序没有接管这个信号的处理,那么缺省的反应是进程结束。因此普通的程序并不能真正脱离登录会话而运行进程,为了使得在系统登录后还可以正常执行,只有使用命令nohup来启动相应程序。

从上面的ps的输出结果可以看出,有些程序没有控制终端,这些程序通常是一些后台进程。使用命令nohup当然可以启动这样的程序,但nohup启动的程序在进程执行完毕就退出,而常见的一些服务进程通常永久的运行在后台,不向屏幕输出结果。在Unix中这些永久的后台进程称为守护进程(daemon)。守护进程通常从系统启动时自动开始执行,系统关闭时才停止。如果偶然某个守护进程消失了,那么它提供的服务将不再能被使用。

在守护进程中,最重要的一个是超级守护进程inetd,这个进程接管了大部分网络服务,但并不是对每个服务都自己进行处理,而是依据连接请求,启动不同的服务程序与客户机打交道。inetd支持网络服务种类在它的设置文件/etc/inet.conf中定义。inet.conf文件中的每一行就对应一个端口地址,当inetd接受到连接这个端口的连接请求时,就启动相应的进程进行处理。使用inetd的好处是系统不必启动很多守护进程,从而节约了系统资源,然而使用inetd启动守护进程相应反应会迟缓一些,不适合用于被密集访问的服务进程。

当用户希望要停止一个进程时,如果进程在前台运行并接收输入的条件下,可以输入^D,告诉进程输入结束,通常这意味着需要进程进行的处理要结束了,从而通知进程结束。对于有些不以文件输入结束作为结束标志的进程,那么就可以使用^C来向进程发送信号中断进程。

如果上述方式均无效,或者进程运行在后台或者是一个守护进程,则需要手工向进程发送信号,这可以通过kill命令来做到。使用 “kill PID” 来向进程发送终止信号SIGTERM,这个信号告诉进程需要退出。但是这些发送的信号都能被程序通过编程的手段捕获并对其进行处理,一旦程序在这个处理过程中没有退出,而是忽略这个信号的情况下,就无法杀死进程。这时只能使用 “kill -9 PID” 向PID代表的进程发送SIGKILL信号,这个信号不能被进程本身捕获,从而无条件杀死进程。但是最好先首先发送SIGTERM信号终止进程。而很多守护进程能够捕获SIGHUP挂线信号,会根据这个信号进行处理,例如重新读入配置文件,重新刷新进程本身等,因此可以再更改进程的配置文件之后,使用 “kill -HUP pid” 刷新进程的配置。

kill命令需要使用进程的标识号PID,因此需要首先运行ps以得到这个标识号。而FreeBSD下可以使用程序的名字来给进程发送信号,这个命令为killall,对于大部分情况,它使用起来更为方便。

查看系统状态

FreeBSD下提供了相当丰富的工具可以用来查看系统的状态,使用者可以通过它们来了解系统状态,从而优化系统性能。这些工具通常读取/dev/mem、/dev/kmem来获得内存中的系统信息,使用/kernel将这些信息中的变量转换为名字。最基本的查看系统状态的命令为ps,用于报告当前系统中运行的进程的状态。

pstat能显示系统中打开的文件数量、交换设备的使用率等系统信息。pstat缺省使用/dev/mem设备文件,从系统内存中读取这些数据,或者可以指定一个core文件,那么pstat从这个文件中读取数据。还需要给pstat一个参数来告诉pstat应该显示那种系统信息,通常使用 “pstat -f” 显示出当前打开文件的列表, “pstat -s” 显示交换设备的当前状态, “pstat -t” 显示当前使用的终端设备文件的状态, “pstat -v” 显示激活的v节点的当前状态。 “pstat -T” 显示这几个系统表的状态,包括当前使用的和可以利用的系统表空间,因此可以用来检查系统在当前负载下是使用多大的系统表,帮助进行优化系统性能。

$ pstat -T

69/8232 files

4M/137M swap space

vmstat报告内核的统计信息,包括进程、虚存、处理器、磁盘等。可以使用 “-w” 参数指定每隔几秒时间,报告一次系统状态。

$ vmstat

procs memory page disks faults cpu

r b w avm fre flt re pi po fr sr wd0 wd1 fd0 in sy cs us sy id

0 0 0 3752 30476 643 0 0 0 19 43 0 0 0 262 2599 85 56 3 41

其他与vmstat类似的命令还有,fstat报告系统中打开文件的信息,可以使用文件名、进程号、用户名,以及指定文件所在的文件系统来限制要显示的文件。iostat报告内核的输入输出统计信息,包括磁盘、终端等设备的I/O状态。netstat报告网络的有关统计信息。nfsstat显示NFS的统计信息。

除此之外,systat以全屏幕方式显示各种系统统计信息,缺省情况下systat是报告处理器的使用率,包括总利用状态、空闲使用率和各个进程的使用率。通过指定参数,systat也能进行I/O的统计、虚存的统计、网络的统计等,这些参数包括-iostat, -vmstat, -mbufs, -netstat, -ip, -icmp, -tcp, -swap等。

/0 /1 /2 /3 /4 /5 /6 /7 /8 /9 /10

Load Average ||

/0 /10 /20 /30 /40 /50 /60 /70 /80 /90 /100

XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

root XF86_S3.cx XXXXXXX

wb kpanel XXX

wb kfm XX

wb kbgndwm XX

wb kblankscrn

wb krootwm

wb kwm

除了这些系统提供的命令之外,FreeBSD也提供多种有效的系统工具,如综合ps、systat和vmstat功能的top等。这些软件通常可以在多种Unix系统中使用,也是十分常用的工具。也可以在FreeBSD系统中安装网络管理代理snmpd,然后使用网络管理系统通过网络来获得FreeBSD主机的各种系统信息。

未完,待续。。。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有