linux 进程解析

博文介绍了进程信息以及部分进程管理命令

最近想要改变博客风格或者方式,很纠结,不知道怎么想,唉,多看看其他人的再说吧。好了,话不多说,直接进入主题
进程简介:
我们来一层层分析:之前看到一个感觉比较恰当的比喻,说程序是菜谱,进程是执行程序的过程,就像按照食谱,真正去做菜的过程。计算机根据菜谱做出可口的饭菜。而linux内核的一个重要功能就是为进程提供方便,比如说为进程分配内存空间,管理进程的相关信息等等,就好像是为我们准备好了一个精美的厨房。
所谓的程序(program),就是一系列指令的所构成的集合。所谓指令(instruction)就是比如计算两个数的和,在内存中寻找地址等这些最基础的计算机动作。
通过程序,我们可以让计算机完成复杂的操作。程序大多数时候被存储为可执行的文件。这样一个可执行文件就是一个菜谱。
进程(process)是运行中的程序的一个副本,是被载入内存的一个指令集合。
进程的特点:
(1)拥有独立唯一的进程地址(Process ID ,PID ):用来标记各个进程
(2)存在生命周期,由创建而产生,由调度而运行,由结束而消亡,是一个动态推进、不断变化的过程。
(3)独立性:进程是操作系统资源分配、保护和调度的基本单位,每个进程都有其自己的运行数据集,以各自独立的、不可预知的进度异步运行。进程的运行环境不是封闭的,进程间也可以通过操作系统进行数据共享、通信。
(4)并发性:在同一段时间内.若干个进程可以共享一个CPU。进程的并发性能够改进系统的资源利用率,提高计算机的效率。进程在单CPU系统中并发执行,在多CPU系统中并行执行。进程的并发执行意味着进程的执行可以被打断,可能会带来一些意想不到的结果。
进程知识
(1)进程格式: task struct :Linux 内核存储进程信息的数据结构格式(略过,有兴趣的可以从内核中了解)
(2)进程之间的联系:task list :多个任务的的 task struct 组成的链表
(3)进程都由其父进程创建,(机制 :CoW (Copy on Write 写时复制)可以点击此链接了解http://www.cnblogs.com/biyeymyhjob/archive/2012/07/20/2601655.html
那么父父进程又是什么呢,我们可以这样理解,存在一个上帝进程,是最终极的进程,
在CentOS6:上帝进程也就是第一个进程(PID=1)为:init。CentOS7中上帝进程(PID=1)为:systemd
(4)进程类型:可以分为两种
守护进程:在系统引导过程中启动的进程,和终端无关的进程(可以理解为Windows系统中的后台进程)
前台进程:通过终端启动的进程(可以理解为Windows系统中的各种前台应用进程)
(5)进程状态:
tai
(6)进程优先级:
系统优先级:数字越小,优先级越高
CentOS4/5中(0-139)
各有140个运行队列和过期(等待)队列
CentOS6/7中(0-98)
各有99个运行队列和过期(等待)队列
实时(realtime)优先级:99-0 值最大优先级最高
nice优先级值:-20到19,对应系统优先级100-139;nice优先级可以根据具体情况进行动态调整。
youxian
进程管理工具
简单介绍pstree命令,ps命令,nice/renice命令,pgrep命令,kill命令。
pstree命令:
pstree  : – display a tree of processes (显示进程树)
常用选项:
-p : 显示进程PID
补充:进程树中的大括号内容是表示依附于进程的线程(thread)。进程中又分为线程,一个进程至少一个线程,如果是复杂多任务的话可以分多线程,节省内存空间,提高效率。
ps命令:
ps : – report a snapshot of the current processes (报告当前进程的快照即当前进程状态)
支持三种选项:
UNIX 选项 如-A,-e
BSD 选项 如a
GNU 选项如—help
常用选项:
ps :默认显示当前终端的前台进程
仅介绍BSD选项:
a :显示所有终端的前台进程
x :显示终端所有进程(包括守护进程和前台进程)
u :显示进程执行者信息(注意:不是显示进程的发起者信息)
f :层次显示进程(父子进程)
o :自定义显示进程的指定属性(常用属性:pid,cmd,%cpu,state(状态),tty,euser(进程生效者),ruser(进程发起者),rss(系统分配的虚拟内存),vsz(实际分配的物理内存),ni(nice优先级),pri(系统优先级),rtprio(realtime优先级),psr(CPU编号))

zhix
k :对指定进程的属性进行排序

常用搭配:ps aux

head
STAT :表示进程状态
statte
nice命令:所有用户都可以以指定的优先级运行命令,这会影响相应进程的调度
选项n:指定优先级(范围-20到19)
示例:nice -n -10 ping 172.17.0.1 ##以nice优先级为10执行ping命令
renice命令:只有root用户可以)调整进程优先级
常用选项:
-P :指定需要调整优先级进程的PID(默认)
-n :指定优先级(范围-20到19)
-u :指定用户名称,修改所有隶属于该用户的程序的优先权。
-g :指定群组名称,修改所有隶属于该群组的程序的优先权
示例:renicepgrep命令:搜索进程,支持模式匹配
pgrep [options] pattern
示例:pgrep -a “^ping”      ##搜索命令以ping开头的进程
常用选项:
-u :搜索显示指定执行者的进程
-U :搜索显示真正发起运行命令者
-t :搜索显示指定终端相关的进程
-P PID:搜索显示指定进程的子进程
-v :显示与搜索条件不符合的程序
-l :显示搜索到的进程名
-a :显示完整格式的进程名
示例:pgrep -au magedu
pgrep -au 1000 (切记:u后面直接跟用户名或uid 不可再跟选项,o选项也是ruci
补充:pidof命令:(查找正在运行的进程的PID)
示例:pidof bash
            pidof httpd
kill命令:向进程发送控制信号,以实现对进程管理,每个信号对应一个数字
信号名称以SIG 开头(可省略),不区分大小写
查看当前系统可用信号可用kill -l或者trap –l命令
常用信号:
1) SIGHUP :无须关闭进程而让其重读配置文件
2) SIGINT :中止正在运行的进程;相当于Ctrl+c
3) SIGQUIT :相当于ctrl+\
9) SIGKILL :强制杀死正在运行的进程
15) SIGTERM :终止正在运行的进程
18) SIGCONT :继续运行
19) SIGSTOP :后台休眠

指定信号的方法:
(1) 信号的数字标识:1, 2, 9
(2) 信号完整名称:SIGHUP可简写名称为:HUP

kill命令用法:
按PID :kill [-SIGNAL] pid …
示例:kill PID    ##“杀死”指定PID的进程
kill -n [SIGNAL] PID   ##向指定PID的进程发送某一信号
按名称:killall [-SIGNAL] comm…
示例:killall ping   ##“杀死”命令ping的进程
kill vim  ##“杀死”命令vim的进程
按模式:pkill [options] pattern (pgrep 与 kill的结合,选项与pgrep相似)
示例:pkill -t pts/2    ##“杀死”终端为pts/2的所有进程
pkill “^ping”  ##“杀死”命令以ping开头的进程

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/86695

(2)
MozartMozart
上一篇 2017-09-09 18:22
下一篇 2017-09-09 19:28

相关推荐

  • 条件测试与基础运算

    变量类型: 整形 数值型 字符型 byte boolen 单精度 双精度 变量种类: 环境变量– 对所有进程有效 本地变量– 仅对当前shell有效 局部变量– 仅在函数中的某一段有效 位置变量– $1,$2,$3,$4 特殊变量– $?,$0,$*,$@,$#,$$ 变量命名法则: 1.不能出现程…

    Linux干货 2017-04-16
  • 第四周作业

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 [root@wlm ~]# useradd tuser1 [root@wlm ~]# cp -r etc/skel/ /home/tuser1/…

    Linux干货 2016-11-21
  • mongodb 分片集群搭建

    集群架构 本次实验部署3台主机node1、node2、node3,2个副本集db1、db2作为分片,3台主机均有1个配置库实例 操作步骤 安装 node1上执行如下命令,完成后拷贝/mongodb目录到node2、node3 useradd mongodb   mkdir -p /mongodb/data/{…

    Linux干货 2016-11-06
  • 【26期】Linux第八周学习小总结

        前言     本周的学习已经过去了,虽然本周学习中老师一直都有说,哎呀,这个不重要,以后有网络管理员给你们来做,了解一下就行,然而话锋一转就又说,其实小公司没有网络管理员,如果你们不好好学,以后就会做得更多更杂的工作,这一周的知识点基本上都是在一个pdf上的,大概有200…

    2017-09-02
  • 简单的shell脚本结合awk实现防止对web服务的dos攻击

    一 实验环境         鄙人使用的是centos 6.8操作系统   需要安装iptables(常见的linux系统貌似都会自动安装iptables)这条可以忽略   awk也需要安装没有的话就用yum装下吧       &…

    2017-04-24
  • httpd服务归纳:httpd简介与基本安装

    一、httpd 简介  1. httpd 历史: httpd daemon 最早诞生于1995年二月, 伊利诺伊大学香槟分校的美国国家超级计算应用中心(NCSA),由Rob McCool开发。当这个项目完成后,Rob 老兄离开RCSA以后,这个项目组就解散了,这个项目也随之终止。 但是,由Brian Behlendorf 和 Cliff …

    Linux干货 2015-05-07