4.Linux的进程
4.1 Linux的进程
4.1.1 进程的概述
- 有关进程的一些基本概念:
1.什么是进程:
- 当程序被触发后,执行者的权限与属性、程序的程序代码与所需的数据都会被加载到内存中,操作系统并给予这个内存内的单元一个标识符(PID),简单的说进程就是一个正在运行的程序
- 进程是程序的具体可实现,它是执行程序的具体过程
2.如何产生一个进程:
- 在Linux中执行一个程序或者命令就可以触发一个事件而取得一个PID(process ID 一个进程的ID),此时就启动了一个进程
- init是Linux系统的第一个进程
- 程序被加载为进程示意图:

4.1.2 查看进程
- 静态地查看进程:
1.静态查看进程的命令其对应的选项:
语法格式: ps [选项] [参数] (ps -- process statu)
常用选项有:

常用的组合选项:

2.示例
查看系统所有程序数据

以树状的形式显示当前系统的所有进程

3.进程显示中各项名词的含义
以下红色框中名词的解释


4.进程有哪些状态
以下是进程的状态字符及其含义:

什么是僵尸进程:
- 僵尸进程是指该进车行已经执行完毕,或者是因故障应该要终止,但该进程的父进程无法完整、有效的将进程结束掉而造成进程一致存在内存中
- 如果某个进程的CMD后面还接上<defunct>,就表示该进程是僵尸进程
5.把进程以更好的形式展示
语法格式: pstree [选项] [参数]
常用选项:

示例:

- 动态观察进程的变化:
1.动态的观察进程的变化的命令及其选项
语法格式: top [选项] [参数]
常用选项:

示例:

在top执行过程中可以使用的按键指令:

- 在默认的情况下top默认的排序方式是按照CPU的使用率进行的,如果多个进程的CUP使用率一致,则优先按照内存的使用量来排序
2.使用top时,前面5行内容及其各个白色块中选项的含义

- 第一行显示的信息:当前的时间,开机到目前为止所经过的时间,已经登录系统的用户人数,系统再1,5,15分钟的平均工作负载
- 第二行显示的信息是:目前进程的总量,个别进程处于什么状态(running,sleeping,stopped,zombie)
- 第三行显示的信息是:CPU的整体负载
- 第四行和第五行表示目前的物理内存与虚拟内存的使用情况
- 白色块中选项的含义:

3.将top信息按2次批次输出到文件中
示例代码:
[root@localhost]#top -b -n 2 > /home/temp/top.txt
#成功之后,进入/home/temp目录查看top.txt文件
[root@localhost]#cat top.txt
4.1.3 进程的管理
- 进程管理的基本概念
1.Linux如何对进程进行进程的管理
- Linux系统使用kill命令来对进程进行管理
- kill并不只是杀死进程,它是一个信号指示
- 进程管理的操作
1.进程管理的命令及其选项
语法格式: kill [选项] [参数]
常用选项:

2.单个进程的管理
语法格式: kill [信号标识] PID
3.多个进程的管理
语法格式: killall [信号标识] 命令名
表示终止以某一个命令名称启动的全部进程
4.示例
显示所有kill可用的信号

重新加载并启动某个进程
重新加载后,再次查看发现重启后的进程PID发生了改变

终止httpd进程

4.1.4 系统资源监控
- 系统资源监控常用的命令
1.Linux系统资源监控常用的命令
系统资源监控常用命令的作用

- 查看系统内存使用情况的操作
1.查看系统内存使用情况的命令及其选项
语法格式: free [选项] [-t]
常用选项:

2.示例
显示当前系统的内存容量

free命令显示的选项解析(红色框部分)

- 查看系统与其核心相关信息的操作
1.相关命令及其选项
语法格式: uname [选项]
常用选项:

示例

- 网络监控:
1.网络监控的命令及其选项
语法格式: natstat [选项]
常用选项:

2.netstat命令选项显示详解
示例:

红色框中命令选项详解:

- 系统防火墙
1.防火墙的临时操作:
放火墙临时启动、状态查看和关闭的语法格式:
#启动防火墙
service iptables start
#查看防火墙状态
service iptables status
#关闭防火墙
service iptables stop
#重启防火墙
service iptables restart
示例:

2.防火墙的永久操作
防火墙的永久开启和关闭的语法格式:
开启:chkconfig iptables on 关闭:chkconfig iptables off
注意:防火墙的永久操作需要重启服务器才能生效
4.1.5 Linux系统的任务管理
- Linux的前台任务和后台任务
1.前台任务的基本概念
- 可以控制与执行命令的bash环境
- 前台任务是指与正在与用户进行交互的的程序
2.后台任务的基本概念
- 操作系统自动运行,不需要用户操作的程序
- 在Linux系统中可以通过Ctrl+z将前台正在执行的任务放到后台暂停运行,从而实现多任务操作
- 可以通过jobs命令来查看后台执行的任务
3.如何改善Ctlr+z,程序在后台暂停运行的弊端
- 可以在命令的末尾加上一个"空格"和"&",实现任务在后台自动运行,并会显示一个PID,便于操作该任务,当任务完成时,会显示一个"Done"来告诉用户已经完成后台任务
- 注意:"&"可以让任务在后台运行,但是不能让交互式程序在后台运行

4.Cltr+z和&的区别
- Ctrl+z将前台的程序防止后台---状态为暂停
- 在执行命令后面追加 "&"---状态为后台运行

- 查看后台任务
1.查看后台任务的命令及其选项
语法格式: jobs [选项]
常用选项:

2.查看后台任务时,一些符号的含义
显示的符号

- 将后台程序拿到前台执行
1.将后台程序调到前台的命令及其选项
语法格式: fg %jobnumber
语法中的%可有可无,没有的时候fg直接跟上任务号

2.注意点
- jobs查看后台任务时,会出现以下符号

- "+"代表当前的,如果命令fg后面没有跟任务号,默认将带"+"的进程调到前台执行
- "-"代表仅次于"+"的任务,当"+"号对应的进程被调到前台后,"-"对应的进程立即变为"+"
- 修改后台程序状态和终止jobs任务
1.修改后台程序状态的语法
语法格式: bg jobnumber
此语法表示让后台对应任务号的程序变成运行状态
如果不加任务号,系统会默认将带"+"的程序变成运行状态
2.注意点
交互式的任务,在后台无法改变它的装态,但是能够改变fg调用它的顺序
示例:

- bg2理论上来说,已经将任务号为[2]的任务变成运行状态,但是执行发现,任务号为[2]的任务仍然是stop状态,因为vim是交互式任务,所以无法在后台改变它为运行状态,但是此时如果执行fg的或会优先将任务号为[2]的任务调到前台执行
3.终止jobs任务
终止jobs任务就是利用kill命令完成,具体参见4.1.3的进程管理操作部分
4.Linux的进程的更多相关文章
- linux管理进程的链表
linux2.6.11的内核中,为了方便管理linux的进程,主要建了5种linux链表.每个链表节点之间的互联有两种方式,一种是hash节点之间的互联,通过hlist_node的数据结构来实现:另一 ...
- [转载]了解Linux的进程与线程
本文转自Tim Yang的博客http://timyang.net/linux/linux-process/ .对于理解Linux的进程与线程非常有帮助.支持原创.尊重原创,分享知识! 上周碰到部署在 ...
- Linux任务调度进程crontab的使用方法和注意事项
参考文章:Linux任务调度进程crond命令的使用方法和注意事项 一.crond简介 概念 crond的概念和crontab是不可分割的.crontab是一个命令,常见于Unix和类Unix的操作系 ...
- Linux 利用进程打开的文件描述符(/proc)恢复被误删文件
Linux 利用进程打开的文件描述符(/proc)恢复被误删文件 在 windows 上删除文件时,如果文件还在使用中,会提示一个错误:但是在 linux 上删除文件时,无论文件是否在使用中,甚至是还 ...
- linux 下进程通讯详解
linux 下进程通讯方法主要有以下六种: 1.管道 2.信号 3.共享内存 4.消息队列 5.信号量 6.socket
- .NET跨平台实践:用C#开发Linux守护进程
Linux守护进程(Daemon)是Linux的后台服务进程,它脱离了与控制终端的关联,直接由Linux init进程管理其生命周期,即使你关闭了控制台,daemon也能在后台正常工作. 一句话,为L ...
- .NET跨平台实践:用C#开发Linux守护进程(转)
Linux守护进程(Daemon)是Linux的后台服务进程,它脱离了与控制终端的关联,直接由Linux init进程管理其生命周期,即使你关闭了控制台,daemon也能在后台正常工作. 一句话,为L ...
- [转]❲阮一峰❳Linux 守护进程的启动方法
❲阮一峰❳Linux 守护进程的启动方法 "守护进程"(daemon)就是一直在后台运行的进程(daemon). 本文介绍如何将一个 Web 应用,启动为守护进程. 一.问题的由来 ...
- Server Develop (七) Linux 守护进程
守护进程 守护进程,也就是通常说的Daemon进程,是Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件.守护进程常常在系统引导装 ...
- Linux 守护进程和超级守护进程(xinetd)
一 .Linux守护进程 Linux 服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系统功能接口,直接面向应用程序和用户.提供这些服务的程序是由运行在后台的守护进程来执行的 ...
随机推荐
- 假期(MySQL相关)
""" 一.初始数据库: - 数据库管理软件的由来 四个字:存储数据(简单暴力) - 数据库概述 :什么是数据:简单的说就是描述事物的记录称为数据:可以是数字,文字,图片 ...
- 从零讲Java,给你一条清晰地学习道路!该学什么就学什么!
从零讲JAVA ,给你一条 清晰地学习道路!该学什么就学什么! 1.计算机基础: 1.1数据机构基础: 主要学习:1. ...
- 大写金额换算器iOS版源码
大写金额换算器iOS版源码 人民币金额大写转换器输入数字就可以转换成相应的人民币大写金额,操作很easy,需一键点击,就可以复制. 是財务办公人员必备的小工具. 银行.单位和个人填写的各种票据和结算凭 ...
- QT信号槽与Delphi事件的对比
最近学QT,对信号槽机制感到有点新鲜: QObject::connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int))); 自己 ...
- js中的slice()、substring()、substr()、split()、join()、indexof()
在js中字符截取函数有常用的三个slice().substring().substr()了,下面我来给大家介绍slice().substring().substr()函数在字符截取时的一些用法与区别吧 ...
- codevs1369 xth 砍树(线段树)
1369 xth 砍树 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题目描述 Description 在一个凉爽的夏夜,xth 和 rabbi ...
- Django day28 频率组件,解析器
一:频率组件: 1.频率是什么? 节流,访问控制 2. (1)内置的访问频率控制类SimpleRateThrottle (2)写一个类,继承SimpleRateThrottle class MyThr ...
- Akka源码分析-Actor创建(续)
在上一遍博客中,我们已经分析了actor创建的大致过程,但只是涉及到了Dipatcher/Mailbox/ActorCell/InternalActorRef等对象的创建,并没有介绍我们自定义的继承A ...
- 百度地图JavaScript API获取用户当前经纬度和详细地理位置,反之通过详细地理位置获取当前经纬度
前言: 前端时间刚好使用了百度地图的js api定位获取用户当前经纬度并获取当前详细位置和通过当前用户详细地理位置换取用户当前经纬度坐标的功能,为了方便下次找起来方便一些自己在这里记录一下,希望也能够 ...
- 【POJ3255/洛谷2865】[Usaco2006 Nov]路障Roadblocks(次短路)
题目: POJ3255 洛谷2865 分析: 这道题第一眼看上去有点懵-- 不过既然要求次短路,那估计跟最短路有点关系,所以就拿着优先队列优化的Dijkstra乱搞,搞着搞着就通了. 开两个数组:\( ...