Linux进程操作简单小结
Linux上进程有5种状态:
1.运行(正在运行或在运行队列中等待)
2.中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
3.不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
4.僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
5.停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
ps命令用来静态查看目前系统中,有哪些正在执行,以及它们的执行情况。可以不加任何参数。
ps -a :显示当前终端的所有进程信息。
ps -u :以用户的格式显示进程信息
ps -x :显示后台进程运行的参数
本人喜欢直接三个参数连起来使用:ps -aux 这样查到的信息更全更详细。
例:
参数说明:
USER:该 process 属于那个使用者账号的
PID :该 process 的号码
%CPU:该 process 使用掉的 CPU 资源百分比
%MEM:该 process 所占用的物理内存百分比
VSZ :该 process 使用掉的虚拟内存量 (Kbytes)
RSS :该 process 占用的固定的内存量 (Kbytes)
TTY :该 process 是在那个终端机上面运作,若与终端机无关,则显示 ?,另外, tty1-tty6 是本机上面的登入者程序,若为 pts/0 等等的,则表示为由网络连接进主机的程序。
STAT:该程序目前的状态,主要的状态有
R :该程序目前正在运作,或者是可被运作
S :该程序目前正在睡眠当中 (可说是 idle 状态),但可被某些讯号 (signal) 唤醒。
T :该程序目前正在侦测或者是停止了
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态
START:该 process 被触发启动的时间
TIME :该 process 实际使用 CPU 运作的时间
COMMAND:该程序的实际指令
top动态查看进程使用状况
23:59:58 当前时间up 10:22 系统运行时间,格式为时:分
2 user 当前登录用户数
load average: 0.00, 0.00, 0.00 系统负载,即任务队列的平均长度。三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。
total 进程总数
running 正在运行的进程数
sleeping 睡眠的进程数
stopped 停止的进程数
zombie 僵尸进程数
Cpu(s):
xx% us 用户空间占用CPU百分比
xx% sy 内核空间占用CPU百分比
xx% ni 用户进程空间内改变过优先级的进程占用CPU百分比
xx% id 空闲CPU百分比
xx% wa 等待输入输出的CPU时间百分比
xx%hi:硬件CPU中断占用百分比
xx%si:软中断占用百分比
xx%st:虚拟机占用百分比
Mem:
1004412k total 物理内存总量
221404k used 使用的物理内存总量
783008k free 空闲内存总量
17268k buffers 用作内核缓存的内存量
Swap:
2031668k total 交换区总量
0k used 使用的交换区总量
2031608k free 空闲交换区总量
97902k cached 缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,该数值即为这些内容已存在于内存中的交换区的大小,相应的内存再次被换出时可不必再对交换区写入。
序号 列名 含义
a PID 进程id
b PPID 父进程id
c RUSER Real user name
d UID 进程所有者的用户id
e USER 进程所有者的用户名
f GROUP 进程所有者的组名
g TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
h PR 优先级
i NI nice值。负值表示高优先级,正值表示低优先级
j P 最后使用的CPU,仅在多CPU环境下有意义
k %CPU 上次更新到现在的CPU时间占用百分比
l TIME 进程使用的CPU时间总计,单位秒
m TIME+ 进程使用的CPU时间总计,单位1/100秒
n %MEM 进程使用的物理内存百分比
o VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
p SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
q RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
r CODE 可执行代码占用的物理内存大小,单位kb
s DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
t SHR 共享内存大小,单位kb
u nFLT 页面错误次数
v nDRT 最后一次写入到现在,被修改过的页面数。
w S 进程状态(D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)
x COMMAND 命令名/命令行
y WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
z Flags 任务标志,参考 sched.h
终止进程的介绍
kill 进程号 :终止某个进程
kill -9 进程号 :强制终止某个进程
kill -u 用户名 :终止某个用户的进程
这里就简单介绍常用的三种终止进程命令。
Linux查看某一进程运行路径步骤只需三步:
一:先查看需要查询的进程的进程号,ps 或者 top 也行
二:Linux在启动一个进程时,系统会在/proc下创建一个以PID命名的文件夹,在该文件夹下会有我们的进程的信息。
cd /proc/PID :到达相应的进程目录下面。
三:运行ls -l
留意:
cwd符号链接的是进程运行目录。
exe符号连接就是执行程序的绝对路径。
cmdline就是程序运行时输入的命令行命令。
environ记录了进程运行时的环境变量。