一、引入进程

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进程作业的查看和杀死的更多相关文章

  1. 详解Linux进程(作业)的查看和杀死

    目录: 引入进程 进程 线程 PS命令 TOP命令 其他查看进程命令 进程的优先级 作业控制机制 kill命令 一.引入进程 1.内存划分为:用户空间和内核空间 1.在用户空间里运行的进程,就是用户进 ...

  2. Linux进程(作业)的查看和杀死 牛

    http://www.cnblogs.com/geaozhang/p/6910151.html

  3. Linux下tomcat管理查看控制台|杀死tomcat进程

    查看控制台 # tail -f catalina.out 脚本执行权限chmod u+x *.sh #看是否已经有tomcat在运行了 ps -ef |grep tomcat #如果有,用kill; ...

  4. linux进程,作业,守护进程,进程间同步

    ps axj命令查看系统中的进程.参数a表示不仅列当前用户的进程,也列出所有其他用户的进程,参数x表示不仅列有控制终端的进程,也列出所有无控制终端的进程,参数j表示列出与作业控制相关的信息: 凡是TP ...

  5. Linux进程作业常用命令

    从鸟哥的私房菜书里摘抄的部分,方便查阅 一.作业管理     1.直接将命令放到后台执行的&         如想将/etc 备份为/tmp/ect.tar.gz时不想等待,可以这样做:    ...

  6. linux进程与端口查看命令

    查看程序对应进程号:ps –ef|grep 进程名 查看进程号所占用的端口号:netstat –nltp|grep 进程号 使用lsof命令: lsof –i:端口号

  7. Linux - 进程与内存查看

    top NI表示进程的优先级. -20的优先级,非常的高. top -p xxx 可以查看具体的进程情况. renice -n -6 进程ID 可以改变一个正在运行的pid的优先级. [root@lo ...

  8. Linux - 进程查看与管理

    标签(空格分隔): Linux 进程的静态查看 查看系统所有进程 ps -ef -- 输出来好乱,看不懂..: ps aux -- a表示所有与终端相关的进程,u表示所有以用户组织的进程状态的信息,x ...

  9. linux -- 进程的查看、进程id的获取、进程的杀死

    进程查看 ps ax : 显示当前系统进程的列表 ps aux : 显示当前系统进程详细列表以及进程用户 ps ax|less : 如果输出过长,可能添加管道命令 less查看具体进程, 如:ps a ...

随机推荐

  1. 关于 C# 十进制不足补位的应用

    看下面图的应用(我们平常的一些自定义主键增加): 补位应用知识: D十进制 不足几位前面补0 基于这个我们可以得到上面结果 //最大編號 string maxNo = string.Empty; // ...

  2. VMware虚拟机找不到USB设备

    VMware虚拟机找不到USB设备该怎么办?打开虚拟机发现竟然找不到usb设备,键盘和鼠标都是usb的,这该怎么办呢?出现这个问题是因为VMUSBArbService服务没有开启,下面分享开启的方法 ...

  3. Java相对路径/绝对路径总结

    Version:0.9 StartHTML:-1 EndHTML:-1 StartFragment:00000099 EndFragment:00019826 Java相对路径/绝对路径总结(2) 修 ...

  4. 使用Maven模板创建项目

    在本教程中,我们将向你展示如何使用mvn archetype:generate从现有的Maven模板列表中生成项目.在Maven 3.3.3,有超过1000+个模板,Maven 团队已经过滤掉一些无用 ...

  5. 学习Unity的步骤

    作者:王选易链接:https://www.zhihu.com/question/23790314/answer/46815232来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  6. Linux 内存buffer与cache区别_003

    一.首先大概了解一下计算机CPU.Cache.Buffer.内存.硬盘.SWAP CPU也称为中央处理器(CPU,Central Processing Unit)是一块超大规模的集成电路,是一台计算机 ...

  7. windows上開啟多個apache服務器

    1.安裝apache(這裡我用的是集成環境) 比較php版本 5.6  與 7.2 比較mysql版本 拓展: 注意:對個不同的版本的mysql,命令行進入,需要指明端口號,如:mysql -uroo ...

  8. 正则表达式(Java版整理)

    基础 元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 ^ 匹配字符串的开始 $ 匹配字符串的结束 \b 匹配字符串的结束 ...

  9. vi编辑器的使用方式

    vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指令.由于对Unix及Linux系统的任何版本,vi编辑器是完全相 ...

  10. GBT算法在拖动滑块辨别人还是机器中的应用

    1.数据源格式:(x,y,t),第一个值x是x坐标范围是1-250的整数,y是1-10的整数,t是滑块从上一个坐标到下一个坐标的时间差,ok是判断是人操作的,Fail是判断是机器操作的,数据看的出,同 ...