Linux进程管理――转

匿名 (未验证) 提交于 2019-12-02 21:59:42

进程:是操作系统中的一种抽象概念,用来表示正在运行的程序
进程有多个属性参数: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

转载请标明出处:Linux进程管理――转
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!