【Linux学习笔记六】进程管理

【注】文章中的所有截图均为centos下实验结果,亲测命令正确= ̄ω ̄=

【参考资料】《Linux从入门到精通(第2版)》刘忆智 等编著


1、一个小实验:结束一个失控的程序
     主目录中用文本编辑器创建一个名为badpro的文本文件,内容如下:
    
    
    
    
#! /bin/bash
while echo "I'm making files!!"
do
mkdir adir
cd adir
touch afile
sleep 2s ##非常重要,使得程序每次建立后“休息”2s,比较温和
done
     $ chmod +x badpro            ##为程序加上可执行权限
     $ ./badpro &            ##后台运行
     $ ps aux | grep badpro            ##通过ps命令查看进程的PID号(唯一标识一个进程)。用管道方式获取并查看,第二个字段为进程号
     $ kill 12974            ##根据进程号杀死进程
     $ rm -r adir            ##删除创建的目录和文件
2、什么是进程
     进程是操作系统的一种抽象概念,用来表示正在运行的程序。内核中重要的进程信息包括:进程的内存地址、进程的当前状态、进程正在使用的资源、进程的优先级(谦让度)、进程的属主。
【转载请注明文章出处:http://blog.csdn.net/iamthezbl/article/details51305604
3、进程的属性
     PID:进程的ID号,Linux不仅自己使用PID来确定进程,还要求用户在管理进程时也要提供相应的PID号。
     PPID:父进程的PID,几乎所有的进程由另一个进程创建,创建该进程的进程称为父进程。应用程序只能通过克隆自己产生新进程。
     UID和EUID:真实和有效的用户ID,标注了进程的属主和访问权限
     GID和EGID:进程创建者所属的组,当进程创建一个新文件时,该文件采用进程的GID。
     谦让度和优先级:谦让度为优先级的相反概念,可以由用户设置。
4、进程监视:ps命令
     $ ps aux            ##显示当前系统上运行的所有进程的信息,每个字段的含义如下:
     USER:进程创建者的用户名
     PID:进程的ID号
     %CPU:进程占用的CPU百分比
     %MEM:进程占用的内存百分比
     VSZ:进程占用的虚拟内存大小
     RSS:内存中页的数量(页是管理内存的单位)
     TTY:进程所在终端的ID号
     STAT:进程的状态,包含字母和附加标志:
                字母:
                R:正在运行/可运行
                D:睡眠中,不可被唤醒,通常是在等待I/O设备
                S:睡眠中,可以被唤醒
                T:停止
                Z:僵进程,已经结束而没有释放系统资源
                附加标志:
                <:进程拥有比普通优先级高的优先级
                N:进程拥有比普通优先级低的优先级
                L:有些页面被锁在内存中
                s:会话的先导进程
     START:进程启动的时间
     TIME:进程已经占用的CPU时间
     COMMAND:命令和参数
     $ ps lax            ##提供父进程ID PPID 和谦让度 NI
【转载请注明文章出处:http://blog.csdn.net/iamthezbl/article/details51305604
5、即时跟踪进程信息:top命令
     $ top            ##默认10s刷新一次,占用CPU最多的进程会排在最前边,使用 q 命令退出
6、查看占用文件的进程:lsof
     $ lsof database.doc            ##正在使用database.doc进程的相关信息
     不带任何参数的lsof命令会列出当前系统中所有打开文件的进程信息。要找出占用某个特定文件的进程,需要提供文件名为参数。
7、向进程发送信号:kill
     kill命令的标准语法:kill [-signal] pid(pid为进程号)
     $ kill -l            ##显示所有的信号及编号
     常用的信号(信号名前可以加 SIG也可以不加):
     EXIT:程序退出时收到该信号
     HUP:挂起
     INT:中断
     QUIT:退出
     KILL:杀死
     SEGV:段错误
     TERM:软件终止
     USR1:用户定义
     默认的情况下kill命令向进程发送TERM信号,这个信号表示终止某项操作,以下几句命令等价:
     $ kill 12974            
     $ kill -TERM 12974            
     $ kill -SIGTERM 12974            
     快捷键Ctrl+C对应于信号INT。
     如果程序中加入“trap "" TERM”用于忽略TERM信号,则该程序不能被 kill - TERM结束。
     -KILL永远不能被捕捉,可以在内核级别杀死进程。
     也有一些程序不能被KILL信号杀死,只能重新启动系统。
【转载请注明文章出处:http://blog.csdn.net/iamthezbl/article/details51305604
8、调整进程的谦让度:nice和renice
     高谦让度意味着低优先级,谦让度可以为负数。
     $ nice            ##查看默认谦让度值
     $ nice -n 2 bc            ##设置bc的谦让度以默认值上增量2启动,是启动相对值的调整
     $ sudo nice -n -3 bc            ##设置bc的谦让度以默认值上增量-3启动
     $ renice +12 -p 8567            ##-p选项指定进程的PID,将运行中的进程8567谦让度调整为12,是运行绝对值的调整
     如果用户不采取行动,新进程从父进程继承谦让度。进程的属主可以提高谦让度,但不能降低谦让度。root用户可以任意设置,所以上述语句中-3要用sudo语句。
9、/PROC文件
     该目录下存放着内核有关系统状态的各种有意义的信息。
     $ ls /proc/           

你可能感兴趣的:(linux,shell,管理)