리눅스 기본 : 디렉토리 이름의 의미, 모니터링 절차

리눅스 파일 시스템

일반적인 리눅스 디렉토리 이름 :

디렉토리 용도
/ 가상 루트 디렉토리. 일반적으로 여기에 파일을 저장하지 않습니다
/큰 상자 바이너리 디렉토리는 많은 사용자 수준 도구 GUN를 저장
/신병 시작 디렉토리, 부팅 파일을 저장
/ dev에 장비 디렉토리, 리눅스 디바이스 노드는 여기 만들어
/기타 시스템 구성 파일 디렉토리
/집 홈 디렉토리, 리눅스 사용자 디렉토리는 여기에 생성
/ lib에 도서관 카탈로그, 저장소 파일 시스템 및 응용 프로그램
/미디어 미디어 카탈로그 공통 마운트 포인트, 이동식 미디어 장치
/ MNT 마운트 디렉토리, 또 다른 일반적인 마운트 포인트는 모바일 미디어 장치가있을 수 있습니다
/고르다 데이터를 저장 파일 및 타사 소프트웨어 패키지에 사용되는 옵션 디렉토리,
/ PROC 코스 카탈로그, 저장, 기존 하드웨어와 현재의 프로세스 정보
/뿌리 루트 사용자의 홈 디렉토리
/ sbin에 시스템 바이너리 디렉토리, 그것은 GUN 관리자 수준의 도구를 많이두고
/운영 디렉토리를 실행하는 런타임 데이터, 스토리지 시스템 운영
/ SRV 디렉토리 서비스, 서비스는 파일을 로컬로 저장 관련
/ SYS 시스템 디렉토리, 파일 시스템 관련 하드웨어 정보를 저장
/ tmp를 임시 디렉토리, 해당 디렉토리에 임시 작업 파일을 생성 및 삭제할 수 있습니다
는 / usr 바이너리 디렉토리의 사용자, 사용자 수준 GUN 툴과 데이터 파일의 큰 숫자는 여기에 저장됩니다
/ 어디 이러한 로그 파일과 같이 자주 변경되는 파일을 저장하기위한 변수 디렉토리

공통 디렉토리 이름은 파일 시스템 계층 표준 (파일 시스템 계층 구조 stanard, FHS)을 기반으로합니다. FHS는 때때로 FHS 리눅스 배포판에서 어떤 사람들은 이전 표준을 사용가있을 수 있습니다 업데이트. : 최신 FHS 표준은 공식 홈 페이지를 방문 할 수 있습니다
http://www.pathname.com/fhs을

ps 명령 과정을 보는

프로그램이 시스템에서 실행되면, 과정 (프로세스)라고합니다. 이러한 프로세스를 모니터링하기 위해, 우리는 ps 명령의 사용에 익숙해야합니다.

기본적으로 ps 명령은 현재 콘솔에서 실행 현재 사용자에 속하는 프로세스를 표시합니다 :

$ ps
  PID TTY          TIME CMD
 4763 pts/0    00:00:00 bash
 4782 pts/0    00:00:00 ps
$ 

여기서, bash 쉘 실행 현재 사용자 및 ps 명령 자체 (주, 쉘은 시스템에서만 실행되는 또 다른 과정이다).

리눅스 시스템에서 사용되는 GNU의 ps 명령은 명령 줄 매개 변수의 세 가지 유형을 지원합니다 :

  • 하나의 파선으로 앞에 유닉스 스타일의 매개 변수,
  • 첫 번째 점선이없는 BSD 스타일의 매개 변수,
  • 점선 비스 앞에 GNU 긴 스타일의 매개 변수,

유닉스 스타일의 매개 변수

벨 연구소가 아래로 원래 AT & T 유닉스 ps 명령 시스템을 개발에서 유닉스 스타일의 인수는 상속됩니다.
유닉스 스타일 ps 명령 매개 변수 :

매개 변수 기술
-에이 모든 프로세스를 표시
-엔 전체 프로세스와 일치 나타내는 파라미터 표시
-에이 표시 제어 처리 (세션 리더) 및 모든 비 - 프로세스는 다른 단말을 처리
-디 공정 제어를 제외한 모든 프로세스를 표시
-이자형 모든 프로세스를 표시합니다. -A 동일해야
-C cmdlist 디스플레이 과정은 cmdlist의 목록에 포함되어
-G GRPLIST 프로세스 그룹 ID는 GRPLIST의 목록에 표시됩니다
-U 사용자 목록 소유자의 사용자 ID 프로세스 사용자 목록의 목록을 표시합니다
-g GRPLIST 표시 세션 또는 그룹 ID 프로세스 GRPLIST 목록
-p pidlist는 PID 프로세서 pidlist는 목록
-s sesslist 세션 ID 표시 처리 sesslist 목록
-t ttylist 터미널 ID 프로세스 ttylist의 목록을 표시합니다
-u 사용자 목록 유효 사용자 ID는 프로세스의 사용자 목록 목록에 표시됩니다
-에프 이상의 추가 출력 (-f 매개 변수를 기준으로 조건)보기
-O 형식 기본 디스플레이 출력 열 및 특정 열 형식 지정 목록
-엠 안전 정보 표시 방법
-씨 추가 정보는 프로세스 스케줄러를 보여
-에프 전체 화면 출력 형식
-제이 디스플레이 작업 정보
-엘 긴 목록을 표시합니다
-o 형식 단지 형식 열을 기준으로 지정된보기
- 그리고 (진행 상태 테이블 마킹 플래그) 현저한 진전을 표시하지 않음
-Z 보안 레이블이 표시됩니다 (SELinux에의 보안 컨텍스트) 정보
-H 형식 (나무를 부모 프로세스를 표시하는) 계층 적 공정을 표시합니다
-n 이름 목록 이는 열에 표시된 값을 정의 WCHAN
-w 넓은 출력 모드의 표시에 한정되지 않는다 폭
-엘 그 과정에서 표시 스레드
-V ps 명령은 버전 번호를 표시

명령 매개 변수는 아니지만 반드시 모든 많은 나열되어 있습니다. ps 명령을 사용하는 열쇠는 마음에 사용할 수있는 매개 변수의 많은 방법이 아니다. 그러나 단지 잘 가장 유용한 매개 변수 조합의 일부를 기억한다.

ps -ef
查看系统上运行的所有进程:

$ ps -ef
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  0 18:23 ?        00:00:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2     0  0 18:23 ?        00:00:00 [kthreadd]
root         3     2  0 18:23 ?        00:00:00 [ksoftirqd/0]
root         5     2  0 18:23 ?        00:00:00 [kworker/0:0H]
root         6     2  0 18:23 ?        00:00:00 [kworker/u2:0]
root         7     2  0 18:23 ?        00:00:00 [migration/0]
root         8     2  0 18:23 ?        00:00:00 [rcu_bh]
root         9     2  0 18:23 ?        00:00:00 [rcu_sched]
root        10     2  0 18:23 ?        00:00:00 [lru-add-drain]

......

root      4250     1  0 18:23 ?        00:00:00 /usr/sbin/hypervkvpd -n
root      4251     1  0 18:23 ?        00:00:00 /usr/sbin/sshd -D
root      4253     1  0 18:23 ?        00:00:01 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      4254     1  0 18:23 ?        00:00:00 /usr/sbin/rsyslogd -n
root      4515     1  0 18:23 ?        00:00:00 /usr/libexec/postfix/master -w
postfix   4532  4515  0 18:24 ?        00:00:00 qmgr -l -t unix -u
root      4569  4251  0 18:24 ?        00:00:00 sshd: root@pts/0
root      4763  4569  0 18:24 pts/0    00:00:00 -bash
postfix   4931  4515  0 20:04 ?        00:00:00 pickup -l -t unix -u
root      4938     2  0 20:31 ?        00:00:00 [kworker/0:3]
root      4944     2  0 20:46 ?        00:00:00 [kworker/0:2]
root      4947     2  0 20:51 ?        00:00:00 [kworker/0:0]
root      4949  4763  0 20:53 pts/0    00:00:00 ps -ef
$ 

每列的信息说明:

  • UID:启动这些进程的用户
  • PID:进程的进程ID
  • PPID:父进程的进程号(如果该进程是由另一个进程启动的)
  • C:进程生命周期中的CPU利用率
  • STIME:进程启动时的系统时间
  • TTY:进程启动时的终端设备
  • TIME:运行进程需要的累积CPU时间
  • CMD:启动的程序名称

ps -el
ps -ef 最常用,而-l参数可以显示其他额外的信息,也可以ps -efl把两部分的信息都显示出来。
使用-l参数,会产生一个长格式输出:

$ ps -el
F S   UID   PID  PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0     1     0  0  80   0 - 32005 ep_pol ?        00:00:01 systemd
1 S     0     2     0  0  80   0 -     0 kthrea ?        00:00:00 kthreadd
1 S     0     3     2  0  80   0 -     0 smpboo ?        00:00:00 ksoftirqd/0
1 S     0     5     2  0  60 -20 -     0 worker ?        00:00:00 kworker/0:0H
1 S     0     6     2  0  80   0 -     0 worker ?        00:00:00 kworker/u2:0
1 S     0     7     2  0 -40   - -     0 smpboo ?        00:00:00 migration/0
1 S     0     8     2  0  80   0 -     0 rcu_gp ?        00:00:00 rcu_bh
1 R     0     9     2  0  80   0 -     0 -      ?        00:00:00 rcu_sched
1 S     0    10     2  0  60 -20 -     0 rescue ?        00:00:00 lru-add-drain

......

4 S     0  4250     1  0  80   0 - 10025 poll_s ?        00:00:00 hypervkvpd
4 S     0  4251     1  0  80   0 - 28215 poll_s ?        00:00:00 sshd
4 S     0  4253     1  0  80   0 - 143481 poll_s ?       00:00:02 tuned
4 S     0  4254     1  0  80   0 - 55687 poll_s ?        00:00:00 rsyslogd
5 S     0  4515     1  0  80   0 - 22412 ep_pol ?        00:00:00 master
4 S    89  4532  4515  0  80   0 - 22455 ep_pol ?        00:00:00 qmgr
4 S     0  4569  4251  0  80   0 - 39183 poll_s ?        00:00:00 sshd
4 S     0  4763  4569  0  80   0 - 28859 do_wai pts/0    00:00:00 bash
4 S    89  4931  4515  0  80   0 - 22438 ep_pol ?        00:00:00 pickup
1 S     0  4972     2  0  80   0 -     0 worker ?        00:00:00 kworker/0:0
1 S     0  4973     2  0  80   0 -     0 worker ?        00:00:00 kworker/0:3
1 S     0  4974     2  0  80   0 -     0 worker ?        00:00:00 kworker/0:1
1 R     0  4977     2  0  80   0 -     0 -      ?        00:00:00 kworker/0:2
0 R     0  4979  4763  0  80   0 - 38309 -      pts/0    00:00:00 ps
$ ^

每列的信息说明:

  • F:内核分配给进程的系统标记
  • S:进程的状态
    • O代表正在运行
    • S代表正在休眠
    • R代表可运行,正等待运行
    • Z代表僵化,进程已结束但父进程已不存在
    • T代表停止
  • PRI:进程的优先级(越大表示优先级越低)
  • NI:谦让度值用来参与决定优先级
  • ADDR:进程的内存地址
  • SZ:假如进程被换出,所需交换空间的大致大小
  • WCHAN:进程休眠的内核函数的地址

BSD风格的参数

伯克利软件发行版(Berkeley software distribution, BSD)是加州大学伯克利分校开发的一个Unix版本。
BSD风格的ps命令参数:

参数 描述
T 显示跟当前终端关联的所有进程
a 显示跟任意终端关联的所有进程
g 显示所有的进程,包括控制进程
r 仅显示运行中的进程
x 显示所有的进程,甚至包括未分配任何终端的进程
U userlist 显示归userlist列表中某用户ID所拥有的进程
p pidlist 显示PID在pidlist列表中的进程
t ttylist 显示所关联的终端在ttylist列表中的进程
O format 除了默认输出的列之外,还输出由format指定的列
X 按过去的Linux i386寄存器格式显示
Z 将安全信息添加到输出中。效果和-Z参数差不多
j 显示任务信息
l 采用长模式
o format 仅显示由format指定的列
s 采用信号格式显示
u 采用基于用户的格式显示
v 采用虚拟内存格式显示
N namelist 定义在WCHAN列中使用的值
O order 定义显示信息列的顺序
S 将数值信息从子进程加到父进程上,比如CPU和内存的使用情况
c 显示真实的命令名称(用以启动进程的程序名称)
e 显示命令使用的环境变量
f 用分层格式来显示进程、表明哪些进程启动了哪些进程
h 不显示头信息
k sort 指定用以将输出排序的列
n 和WCHAN信息一起显示出来,用数值来表示用户ID和组ID
w 为较宽屏幕显示宽输出
H 将线程按进程来显示
m 在进程后显示线程
L 列出所有格式指定符
V 显示ps命令的版本号

Unix和BSD类型的参数有很多是重复的,大多数情况下,选择自己重用的格式的参数即可。
ps aux
这个是BSD风格的显示所有进程的命令,效果类似于ps -ef,主要是展示风格不同,输出的列也有一些区别。
在使用BSD参数时,ps命令会自动改变输出以模仿BSD格式:

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.3 128000  6540 ?        Ss   09:19   0:01 /usr/lib/systemd/systemd --switched-root --system --deserialize 22
root         2  0.0  0.0      0     0 ?        S    09:19   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S    09:19   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   09:19   0:00 [kworker/0:0H]
root         6  0.0  0.0      0     0 ?        S    09:19   0:00 [kworker/u2:0]
root         7  0.0  0.0      0     0 ?        S    09:19   0:00 [migration/0]
root         8  0.0  0.0      0     0 ?        S    09:19   0:00 [rcu_bh]
root         9  0.0  0.0      0     0 ?        R    09:19   0:00 [rcu_sched]
root        10  0.0  0.0      0     0 ?        S<   09:19   0:00 [lru-add-drain]

......

root      4256  0.0  0.0  40100  1540 ?        Ss   09:19   0:00 /usr/sbin/hypervkvpd -n
root      4258  0.0  0.2 112860  4296 ?        Ss   09:19   0:00 /usr/sbin/sshd -D
root      4259  0.0  0.4 222748  7800 ?        Ssl  09:19   0:00 /usr/sbin/rsyslogd -n
root      4261  0.0  0.9 573924 17144 ?        Ssl  09:19   0:00 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      4503  0.0  0.1  89648  2100 ?        Ss   09:19   0:00 /usr/libexec/postfix/master -w
postfix   4516  0.0  0.2  89752  4068 ?        S    09:19   0:00 pickup -l -t unix -u
postfix   4517  0.0  0.2  89820  4096 ?        S    09:19   0:00 qmgr -l -t unix -u
root      4770  0.0  0.3 156732  5524 ?        Ss   09:28   0:00 sshd: root@pts/0
root      4774  0.0  0.1 115436  2068 pts/0    Ss   09:28   0:00 -bash
root      4829  0.0  0.0      0     0 ?        S    09:35   0:00 [kworker/0:3]
root      4887  0.0  0.0      0     0 ?        S    09:40   0:00 [kworker/0:1]
root      4901  0.0  0.0      0     0 ?        R    09:45   0:00 [kworker/0:0]
root      4903  0.0  0.1 155360  1884 pts/0    R+   09:48   0:00 ps aux
$ 

每列的信息说明:

  • VSZ:进程在内存中的大小,以千字节(KB)为单位
  • RSS:进程在未唤出时占用的物理内存
  • STAT:代表当前进程状态的双字符状态码。

BSD风格表示的进程状态码更详细。双字符码能比Unix风格输出的单字符状态码更清楚地表示进程的当前状态。
第一个字符采用了Unix分格S列相同的值,表明休眠(S)、运行(O)还是等待(R)。
第二个值进一步说明进程的状态:

  • <:该进程运行在高优先级上
  • N:该进程运行在低优先级上
  • L:该进程有页面锁定在内存中
  • s:该进程是控制进程
  • l:该进程是多线程的
  • +:该进程运行在前台

GNU长参数

最后,GNU开发人员在最近改进过的ps命令中加入了另外一些参数。其中一些复制了现有的Unix或BSD类型的参数,而另一些则提供了新功能。
GNU风格的ps命令参数:

参数 描述
--deselect 显示所有进程,除了命令行中列出的进程
--Group grplist 显示组ID在grplist列表中的进程
--User userlist 显示用户ID在userlist列表中的进程
--group grplist 显示有效组ID在grplist列表中的进程
--pid pidlist 显示PID在pidlist列表中的进程
--ppid pidlist 显示父PID在pidlist列表中的进程
--sid sidlist 显示会话ID在sidlist列表中的进程
--tty ttylist 显示终端设备号在ttylist列表中的进程
--user userlist 显示有效用户ID在userlist列表中的进程
--format format 仅显示由format指定的列
--context 显示额外的安全信息
--cols n 将屏幕宽度设置为n列
--columns n 将屏幕宽度设置为n列
--cumulative 包含已停止的子进程的信息
--forest 用层级结构显示出进程和父进程之间的关系
--headers 在每页输出是显示列的头
--no-headers 不显示列的头
--lines n 将屏幕高度设为n行
--rows n 将屏幕高度设为n排
--sort order 指定将输出按哪列排序
--width n 将屏幕宽度设为n列
--help 显示帮助信息
--info 显示调试信息
--version 显示ps命令的版本号

部分GNU长参数可以和Unix或BSD风格的参数混用来定制输出。

--forest参数 显示进程的层级信息
这么多参数中,--forest是一个很好的功能。它会显示进程的层级信息,并用ASCII字符绘出好看的效果:

$ ps -ef --forest
UID        PID  PPID  C STIME TTY          TIME CMD
root         2     0  0 09:19 ?        00:00:00 [kthreadd]
root         3     2  0 09:19 ?        00:00:00  \_ [ksoftirqd/0]

......

root      4256     1  0 09:19 ?        00:00:00 /usr/sbin/hypervkvpd -n
root      4258     1  0 09:19 ?        00:00:00 /usr/sbin/sshd -D
root      4770  4258  0 09:28 ?        00:00:00  \_ sshd: root@pts/0
root      4774  4770  0 09:28 pts/0    00:00:00      \_ -bash
root      5001  4774  0 11:12 pts/0    00:00:00          \_ ps -ef --forest
root      4259     1  0 09:19 ?        00:00:00 /usr/sbin/rsyslogd -n
root      4261     1  0 09:19 ?        00:00:01 /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      4503     1  0 09:19 ?        00:00:00 /usr/libexec/postfix/master -w
postfix   4517  4503  0 09:19 ?        00:00:00  \_ qmgr -l -t unix -u
postfix   4958  4503  0 11:00 ?        00:00:00  \_ pickup -l -t unix -u
$ 

Unix风格的-H参数也有同样的功能,但是效果没有这个好:

$ ps -efH
UID        PID  PPID  C STIME TTY          TIME CMD
root         2     0  0 09:19 ?        00:00:00 [kthreadd]
root         3     2  0 09:19 ?        00:00:00   [ksoftirqd/0]

......

root      4256     1  0 09:19 ?        00:00:00   /usr/sbin/hypervkvpd -n
root      4258     1  0 09:19 ?        00:00:00   /usr/sbin/sshd -D
root      4770  4258  0 09:28 ?        00:00:00     sshd: root@pts/0
root      4774  4770  0 09:28 pts/0    00:00:00       -bash
root      5002  4774  0 11:13 pts/0    00:00:00         ps -efH
root      4259     1  0 09:19 ?        00:00:00   /usr/sbin/rsyslogd -n
root      4261     1  0 09:19 ?        00:00:01   /usr/bin/python2 -Es /usr/sbin/tuned -l -P
root      4503     1  0 09:19 ?        00:00:00   /usr/libexec/postfix/master -w
postfix   4517  4503  0 09:19 ?        00:00:00     qmgr -l -t unix -u
postfix   4958  4503  0 11:00 ?        00:00:00     pickup -l -t unix -u
$ 

BSD风格的f参数也是这个功能,效果和--forest一样。

top 命令实时监测进程

top命令和ps命令相似,都能够显示进程信息,并且是实时的:

$ top
top - 12:01:28 up  2:41,  1 user,  load average: 0.00, 0.01, 0.05
Tasks:  97 total,   2 running,  95 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.0 us,  0.3 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1816668 total,   335380 free,  1325796 used,   155492 buff/cache
KiB Swap:  2097148 total,  2097148 free,        0 used.   321636 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND                                                                                
 5028 root      20   0  161880   2216   1572 R  0.3  0.1   0:00.06 top                                                                                    
    1 root      20   0  128000   6544   4136 S  0.0  0.4   0:01.12 systemd                                                                                
    2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd                                                                               
    3 root      20   0       0      0      0 S  0.0  0.0   0:00.03 ksoftirqd/0                                                                            
    5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:0H                                                                           
    6 root      20   0       0      0      0 S  0.0  0.0   0:00.03 kworker/u2:0                                                                           
    7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0                                                                            
    8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh                                                                                 
    9 root      20   0       0      0      0 S  0.0  0.0   0:00.35 rcu_sched                                                                              
   10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-drain                                                                          
   11 root      rt   0       0      0      0 S  0.0  0.0   0:00.11 watchdog/0                                                                             
   13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs                                                                              
   14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns                                                                                  
   15 root      20   0       0      0      0 S  0.0  0.0   0:00.00 khungtaskd                                                                             
   16 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 writeback                                                                              
   17 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kintegrityd                                                                            
   18 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                                 
   19 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                                 
   20 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 bioset                                                                                 
   21 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kblockd                                                                                
   22 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 md                                                                                     
   23 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 edac-poller                                                                            
   24 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 watchdogd                                                                              
   30 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kswapd0                                                                                
   31 root      25   5       0      0      0 S  0.0  0.0   0:00.00 ksmd                                                                                   
   32 root      39  19       0      0      0 S  0.0  0.0   0:00.06 khugepaged                                                                             
   33 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 crypto                                                                                 
   41 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kthrotld       

输出的第一部分显示的是系统的概况:

  • 第一行显示了当前时间、系统的运行时间、登录的用户数以及系统的平均负载。
    • 平均负载有3个值:最近1分钟的、最近5分钟的、最近15分钟的平均负载
  • 第二行显示了进程概要信息。这里将进程叫做任务(task),各种状态进程的数量:
    • total:总数
    • running:运行
    • sleeping:休眠
    • stopped:停止
    • zombie:僵化(僵化状态是指进程完成了,但父进程没有响应)
  • 第三行显示了CPU的概要信息,将CPU利用率分成几类输出:
    • us【user space】— 用户空间占用CPU的百分比。
    • sy【sysctl】— 内核空间占用CPU的百分比。
    • ni【】— 改变过优先级的进程占用CPU的百分比
    • id【idolt】— 空闲CPU百分比
    • wa【wait】— IO等待占用CPU的百分比
    • hi【Hardware IRQ】— 硬中断占用CPU的百分比
    • si【Software Interrupts】— 软中断占用CPU的百分比
  • 第四行是系统的物理内存状态:
    • total — 物理内存总量
    • free — 空闲内存总量
    • used — 使用中的内存总量
    • buff/cache — 用作内核缓存的内存量
  • 第五行是系统的交换空间状态:
    • total — 交换区总量
    • free — 空闲交换区总量
    • used — 使用的交换区总量
    • avail Mem — 缓冲的交换区总量。内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
  • 最后一部分显示了当前运行中的进程的详细列表,有些列和ps命令的输出类似:
    • PID:进程的ID
    • USER:进程属主的名字
    • PR:进程的优先级
    • NI:进程的谦让度值(nice值)
    • VIRT:进程占用的虚拟内存总量
    • RES:进程占用的物理内存总量
    • SHR:进程和其他进程共享的内存总量
    • S:进程的状态(D可中断的休眠状态,R运行,S休眠,T跟踪状态或停止状态,Z僵化)
    • %CPU:进程使用的CPU时间比例
    • %MEM:进程使用的内存占可用内存的比例
    • TIME+:自进程启动到目前为止的CPU时间总量
    • COMMAND:进程所对应的命令行名称,也就是启动的程序名

默认情况下,top启动后按%CPU排序,可按f指定其他列。轮询时间默认是3.0秒,可按d修改。按q是退出。其他就不列举了。

结束进程

在Linux中,进程之间通过信号来通信。大多数编写完善的程序都能接收和处理标准Unix进程信号。
Linux进程信号:

信号 名称 描述
1 HUP 挂起
2 INT 中断
3 QUIT 结束运行
9 KILL 无条件终止
11 SEGV 段错误
15 TERM 尽可能终止
17 STOP 无条件停止运行,但不终止
18 TSTP 停止或暂停,但继续在后台运行
19 CONT 在STOP或TSTP之后恢复执行

kill命令
kill命令可通过进程ID(PID)给进程发信号。默认发送TERM信号。因为只能使用PID来指定,而不能用命令名,所以有时候不是很好用。
要发送信号,你还必须是该进程的属主或者是root。
kill命令不会有任何输出,要检查kill命令是由有效,可以再运行ps或top命令。

killall命令
killall命令支持通过进程名而不是PID来结束进程。killall命令也支持通配符。

추천

출처blog.51cto.com/steed/2443959