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目录下的文件写入数据来修改操作系统参数


点击打开链接https://www.cnblogs.com/chinawjb/p/5240626.html

猜你喜欢

转载自blog.csdn.net/maxinezhou/article/details/80469806