详解Linux进程(作业)的查看和杀死
一、引入进程
1、内存划分为:用户空间和内核空间
1、在用户空间里运行的进程,就是用户进程,所属的状态为用户态
2、在内核空间里运行的进程,就是系统进程,所属的状态为内核态
例:执行内核里的代码的时候,就是属于内核态。
Linux的kernel其实就是一个软件,比较核心而已。
内核作用:
1.对cpu进行调度管理
2.对内存进行管理
3.对进程进行管理
4.对文件系统进行管理
5.对其他的硬件管理
2、内核空间的进程可以访问用户空间,但是用户空间的进程不能访问内核空间。
二、进程
process是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源(内存、CPU)分配和调度的一个独立单位。
1、进程控制块(PCB)
是系统感知进程存在的唯一凭证,是数据结构,占用内存空间。
2、进程上下文
1、上文:已执行过的进程指令和数据在相关寄存器和堆栈中的内容称为上文。
2、正文:正在执行的指令和数据在相关寄存器和堆栈中的内容。
3、下文:待执行的指令和数据在相关寄存器和堆栈中的内容。
进程上下文切换:
指多任务系统中,CPU的控制权由运行任务,转移到另外一个就绪任务时所发生的事件;当前运行任务转为就绪(或者挂起、删除)状态,另一个被选定的就绪任务成为当前任务。
3、线程
thread只能归属于一个进程并且它只能访问该进程所拥有的资源。当操作系统创建一个进程后,该进程会自动申请一个名为主线程或首要线程的线程。
简而言之:
1、一个程序至少有一个进程,一个进程至少有一个线程;
2、线程的划分尺度小于进程,使得多线程程序的并发性高;
3、进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。
- shell> echo $PPID //查看父进程ID
- shell> echo $$ //查看当前进程ID
三、ps命令
用于查看os进程信息。
1、ps命令查看这些数据
1、描述信息:pid 进程名 父子shell的家族关系等
2、控制信息:进程当前状态、进程优先级等
3、资源管理信息:占多少内存,打开了多少个文件等
4、cpu现场保护结构
注意:ps命令查看静态的进程统计信息。
2、常见ps命令
shell> ps aux 或 ps -elf
a:显示当前终端启动的进程
u:显示用户为主的进程信息
x:显示所有进程信息
-e:显示系统内的所有进程信息
-l:使用长格式显示进程信息
-f:使用完整的格式显示进程信息
[root@localhost ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
解析:
PID 进程的ID;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
COMMAND 命令的名称和参数
[root@localhost ~]# ps -elf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
解析:
R 正在运行,在可中断队列中(就绪状态);
S 处于休眠状态,静止状态;
Z 僵尸进程不存在但暂时无法消除;
四、top命令
查看动态的进程排名信息。
1、命令行直接top命令
[root@localhost ~]# top
等待输入……
h获得帮助
1:显示各CPU情况
P:按%CPU排序
M:按%MEM排序
空格:马上刷新(默认3秒)
q:退出(默认的top会一直占用当前端口)
解析:load average: 0.06, 0.60, 0.48
表示系统负载,即任务队列的平均长度。
三个数值分别为 1分钟、5分钟、15分钟前到现在的平均值。(w和uptime也可以查看top的顶头信息)
2、top命令常接选项
[root@localhost ~]# top -d 1 -n 5 -p 1
-d 1 指定刷新间隔时间为1秒
-n 5 刷新次数
-p 1 显示指定PID为1的进程信息,如果要指定多个PID,用逗号分开
五、其他查看进程的命令
1、pstree命令:以树型结构显示各进程间的关系
shell> pstree
- init─┬─abrtd
- ├─acpid
- ├─atd
- ├─auditd───{auditd}
- ├─automount───*[{automount}]
- ├─certmonger
- ├─console-kit-dae───*[{console-kit-da}]
- ├─crond
- ├─cupsd
- ├─dbus-daemon
- ├─hald─┬─hald-runner─┬─hald-addon-acpi
- │ │ └─hald-addon-inpu
- │ └─{hald}
- ├─irqbalance
- ├─login───bash
- ├─mcelog
- ├─*[mingetty]
- ├─mysqld_safe───mysqld───*[{mysqld}]
- ├─rpc.statd
- ├─rpcbind
- ├─rsyslogd───*[{rsyslogd}]
- ├─*[sendmail]
- ├─sshd─┬─sshd───bash───pstree
- │ └─sshd───bash───mysql
- ├─udevd───*[udevd]
- ├─vsftpd
- ├─xinetd
- └─zabbix_agentd───*[zabbix_agentd]
常接命令选项-p:列出进程的PID号
注意:使用{}的是进程的线程。
2、pgrep命令:根据特定条件查询进程PID信息
- [root@localhost ~]# pgrep init
- [root@localhost ~]# pgrep -l init
- init
- [root@localhost ~]# pgrep -l -u root -t pts/
- bash
-l:列出进程的名称
-u:根据进程所属的用户名进行查找
-t:根据进程所在的终端进行查找
……比较少用,特殊情况下会用用。
六、进程的优先级
Linux内核的基本任务是调度进程,每个进程受两个参数影响其调度。
1、优先级(priority):内核控制动态变化
值越小越早被cpu执行,用户无法直接调整数值大小。
2、niceness:进程可被执行的优先级的修正数值(可以人工修改)
- 、用nice命令开新的nice(新开启的进程),以新的nice来启动命令
- nice - vi & //设置nice值为10
- nice -- vi & //设置nice值为-10
- 、用renice命令设置新nice(已经存在的进程)
- renice //设置nice值为10
- renice - //设置nice值为-10
- 、用top命令修改进程的优先级
- 先输入r,然后输入pid,最后输入优先级
七、作业控制机制
前台启动:用户输入命令,直接执行程序
后台启动:在命令行尾加入“&”符号,让进程切入后台执行
bg命令:将后台停止的进程,在后台重新运行
- [root@localhost lianxi]# jobs //查看后台作业信息
- []+ Stopped vim num.txt
- []- Killed cp -i -r /mnt/* /tmp
- + :最新放到后台的进程
- - :仅次于最新放到后台的进程
[root@localhost lianxi]# fg //将后台的进程调到前台
fg将处于后台的进程恢复到前台运行,需指定作业号,不指定作业号,将恢复有“+”标记的进程。
八、kill命令
kill命令的实现是基于OS的“信号机制”。信号机制除了基本通知功能外,还可以传递附加信息。详解参考:http://www.cnblogs.com/geaozhang/p/6874310.html
shell> kill –l #列出linux系统支持的信号种类
格式:
kill –信号代码 PID
原理:kill命令用来发送信号(软中断信号),进程收到信号后采取的行动:终止、忽略、挂起
1、kill和killall的区别:
kill 后面写进程ID,不能写进程名
killall 后面写进程名,不能写进程ID,会将相同名字的进程一起杀死
2、pkill命令:根据“特定条件”终止相应的进程
-u:根据进程所属的用户名终止相应进程
-t:根据进程所在的终端终止相应进程
shell> pkill mysqld #强行终止mysqld服务进程
详解Linux进程(作业)的查看和杀死的更多相关文章
- Linux进程作业的查看和杀死
引入进程 进程 线程 PS命令.TOP命令.其他查看进程命令 进程的优先级 作业控制机制 kill命令 一.引入进程 1.内存划分为:用户空间和内核空间 1.在用户空间里运行的进程,就是用户进程,所属 ...
- Linux进程(作业)的查看和杀死 牛
http://www.cnblogs.com/geaozhang/p/6910151.html
- Linux进程上下文切换过程context_switch详解--Linux进程的管理与调度(二十一)
1 前景回顾 1.1 Linux的调度器组成 2个调度器 可以用两种方法来激活调度 一种是直接的, 比如进程打算睡眠或出于其他原因放弃CPU 另一种是通过周期性的机制, 以固定的频率运行, 不时的检测 ...
- Linux内核线程kernel thread详解--Linux进程的管理与调度(十)【转】
转自:http://blog.csdn.net/gatieme/article/details/51589205 日期 内核版本 架构 作者 GitHub CSDN 2016-06-02 Linux- ...
- ELF文件的加载过程(load_elf_binary函数详解)--Linux进程的管理与调度(十三)
加载和动态链接 从编译/链接和运行的角度看,应用程序和库程序的连接有两种方式. 一种是固定的.静态的连接,就是把需要用到的库函数的目标代码(二进制)代码从程序库中抽取出来,链接进应用软件的目标映像中: ...
- Linux的命名空间详解--Linux进程的管理与调度(二)【转】
Linux Namespaces机制提供一种资源隔离方案. PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace.每个Namespace里面的资源对其他Namesp ...
- Linux的命名空间详解--Linux进程的管理与调度(二)
转自:http://blog.csdn.net/gatieme/article/details/51383322 日期 内核版本 架构 作者 GitHub CSDN 2016-05-12 Linux- ...
- Linux内核线程kernel thread详解--Linux进程的管理与调度(十)
内核线程 为什么需要内核线程 Linux内核可以看作一个服务进程(管理软硬件资源,响应用户进程的种种合理以及不合理的请求). 内核需要多个执行流并行,为了防止可能的阻塞,支持多线程是必要的. 内核线程 ...
- Linux下进程的创建过程分析(_do_fork do_fork详解)--Linux进程的管理与调度(八)
Unix标准的复制进程的系统调用时fork(即分叉),但是Linux,BSD等操作系统并不止实现这一个,确切的说linux实现了三个,fork,vfork,clone(确切说vfork创造出来的是轻量 ...
随机推荐
- C++命名空间的解释 【转】
使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突.在C++中,变量.函数和类都是大量存在的.如果没有命名空间,这些变量.函数.类的名称将都存在于全局命名空间中,会导致很多冲突.比如,如果我 ...
- dd命令的使用简介
dd命令: convert and copy a file 用法: dd if=/PATH/FROM/SRC of=/PATH/TO/DEST bs=#: block size, 复制单元大小 ...
- .dll 文件编写和使用
1.基本概念 dll(dynamic-link library),动态链接库,是微软实现共享函数库的一种方式.动态链接,就是把一些常用的函数代码制作成dll文件,当某个程序调用到dll中的某个函数的时 ...
- windows下使用wineshark分析抓取本地回环包
## 摘要 由于windows系统没有提供本地回环网络的接口,用Wireshark监控网络的话看不到localhost的流量. 想要获取本地的网络数据包,可以通过一款小巧的开源软件RawCap来进行抓 ...
- iOS UITableViewCell点击时子视图背景透明的解决方法
在做iOS项目的开发中,UITableView控件的应用十分广泛.在进行自定义UITableViewCell时,经常遇到这样的问题:在UITableViewCell上面添加了一个有背景颜色的子视图,当 ...
- FreeSWITCH 安装配置的 各种坑, 填坑
个人安装环境: OS:CentOS6.7 64位 FreeSWITCH Ver:1.6.17 一. 编译出错 安装 之前, 最好 先安装 这几个东西(如果有, 请忽略): yasm (有nasm的话 ...
- 关于Java中String类的hashCode方法
首先来看一下String中hashCode方法的实现源码 public int hashCode() { int h = hash; if (h == 0 && value.lengt ...
- 关于定时发送服务的解决办法(PHP)
一.定时发送任务解析 在进行手机APP或者微信开发的时候,经常会有需要定时推送消息的场景. 定时发送又分为两种: 一种是在开发的时候固定时间,后台管理人员只能选择将要推送的消息: 另一种是后台管理人员 ...
- HashMap 学习笔记
先摆上JDK1.8中HashMap的类注释:我翻译了一下 /** * Hash table based implementation of the <tt>Map</tt> i ...
- Vue+axios 实现http拦截及路由拦截
现如今,每个前端对于Vue都不会陌生,Vue框架是如今最流行的前端框架之一,其势头直追react.最近我用vue做了一个项目,下面便是我从中取得的一点收获. 基于现在用vue+webpack搭建项目的 ...