Linux进程管理

Posted ChinaWJB

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux进程管理相关的知识,希望对你有一定的参考价值。

进程:是操作系统中的一种抽象概念,用来表示正在运行的程序
进程有多个属性参数:PID、PPID、UID、GID等
 
例子:手动创建一个后台程序,并通过kill杀死它,前台程序可以Ctrl+C杀死
     1.在主目录中用文本编辑器创建一个名为badpro的文本文件,包含如下内容:
          #!  /bin/bash
          while echo "I‘m making files!!!"
          do
               mkdir adir
               cd adir
               touch afile
               sleep 2s(不能忘,否则,必须使用rm -fr adir来删除这些“垃圾”目录)
          done
     2.将这个文件加上可执行权限,并从后台执行。
          chmod +x badpro
          ./badpro & (将命令放到一个工作队列中,可以用命令“jobs”查看)
     3.程序运行起来了,运行ps命令查看这个程序的PID号(PID号用于唯一表示一个进程);
          ps  aux  |  grep  badpro          
          ps 查看所有运行的程序
          ps -aux      ##可以看到所有运行的程序与grep连用筛选
          ps -a          ##显示现行终端机下的所有程序(包括其他用户的程序)
          ps -u          ##以用户为主的排序显示(username)
          ps -x          ##显示所有程序(包括所有终端机下的)
     4.使用kill命令“杀死“这个进程。
          kill  12794 ( PID );
     5.回到运行badpro的终端,可以看程序已被终止,最后删除建立的目录和文件
          rm -r adir
 
1.查看所有运行的程序:ps
          ps -aux      ##可以看到所有运行的程序与grep连用筛选
          ps -a          ##显示现行终端机下的所有程序(包括其他用户的程序)
          ps -u          ##以用户为主的排序显示(username)
          ps -x          ##显示所有程序(包括所有终端机下的)
          ps aux  |  grep badpro     ##筛选出带有badpro关键字的进程
          ("-"可以省略)
 
          ps lax        ##可以提供进程ID(PPID父进程)和 谦让度(NI)不需要显示属主用户名,所以速度更快
     
                                                  ps  zux 命令产生进程信息的各种字段含义:
字段
含义
USER
进程创建者的用户名
PID
进程的ID号
%CPU
进程占用的CPU百分比
%MEM
进程占用的内存百分比
VSZ
进程占用的虚拟内存的大小
RSS
内存中页的数量(页是管理内存的单位,在PC上通常为4K
TTY
进程所在终端的ID号
STAT
进程状态,常用的字母代表含义如下:
R 正在运行/可运行          D 睡眠中(不可被唤醒,通常是等待I/O设备)
S 睡眠中(可以被唤醒)   T 停止(由于收到信号或被跟踪)
Z 僵进程(已经结束而没有释放系统资源的进程)
常用的附加标准:
< 进程拥有比普通优先级高的优先级
N 进程拥有比普通优先级低的优先级
L 有些页面被锁在内存中
s 会话的先导进程
START
进程启动的时间
TIME
进程已经占用的CPU时间
COMMAND
命令的参数
 
2.即时跟踪进程信息:top
          top     ##命令显示的信息会占满一页,并且在默认情况下每10s更新一次。那些使用CPU最多的程序会排在最前面。
           q        ##退出    
 
3.查看占用文件的进程:lsof
          lsof database.doc
 
4.向进程发送信号:kill(只是用来向进程发送一个信号)
          kill [-signal]  pid   
          kill pid    等同于kill -TERM pidkill -SIGTERM pid 或kill -15 pid(SIG可以省略)
          kill -INT     等同于快捷键Ctrl+C
                                                                                      常用的信号
信号编码
信号名
描述
默认情况下执行的操作
0
(SIG)EXIT(SIG可以省略
程序退出时收到该信号
终止
1
(SIG)HUP
挂起
终止
2
(SIG)INT
中断
终止
3
(SIG)QUIT
退出
终止
9
(SIG)KILL
杀死
终止
11
(SIG)SEGV
段错误
终止
15
(SIG)TERM(默认,不写
软件终止
终止
取决于硬件体系
USR1
用户定义
终止
取决于硬件体系
USR1
用户定义
终止
 
     注意:在程序的开头加入命令“trap "" TERM”用于忽略TERM信号,如下:
                    #!  /bin/bash
                    trap "" TERM
                    while echo ... ...
                但是KILL信号是永远不会被程序捕获的,可以用该信号结束进程
 
5.调整进程的谦让度:nice 和 renice
          谦让度 IN 的范围:-20~+19
          nice命令可以在启动程序时设置其谦让度,设置 相对值
          renice命令可以在进程运行时调整其谦让度,设置 绝对值
               nice -n 2 bc               ##设置bc以谦让度 增量2 启动
               nice bc                       ##不带-n时,会将程序的谦让度增量设置为10
               renice +12 -p [PID]    ##将bc的 -p 选项指定进程的PID
 
6./PROC文件系统
          /PROC目录下存放着内核有关系统状态的各种有意义的信息。在系统运行时,内核会随时向这个目录写入数据。ps和top命令就是从这个地方读取数据的。事实上,这是操作系统向用户提供的一条通往内核的通道,用户甚至可以通过向/proc目录下的文件写入数据来修改操作系统参数
 
 
 
 
 
 
 
 
 

以上是关于Linux进程管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux 内核Linux 内核体系架构 ( 进程调度 | 内存管理 | 中断管理 | 设备管理 | 文件系统 )

Linux性能及调优指南(翻译)之Linux进程管理

linux进程管理

Linux进程管理专题

linux进程管理

Linux 进程管理 进程优先级管理