`
- 浏览:
258809 次
- 性别:
- 来自:
未定
-
进程控制
1.进程的组成部分
一个进程由一个地址空间和内核内部的一组数据结构组成. 地址空间是由内核标记出来供进程使用的一组内存页面.
内核内部数据结构记录了有关每个进程的各种信息:
a.进程的地址空间映射
b.进程的当前状态
c.进程已用的资源的信息
d.进程已打开的文件和网络端口信息.
e.进程的信号掩码(确定要封鎖哪些信号)
f.进程的属主
2.进程的运行参数
a.PID 内核分配给进程的独一无二的ID号
控制进程的大多数命令或系统调用必须指明PID
b.PPID 父PID
linux没有提供创建新进程去运行某个特定程序的系统调用,现有进程需要自己克隆自身去创建一个新进程
c.UID和EUID 真实的和有效的用户ID
d.GID和EGID 类似之上
e.谦让度
f.控制终端
大多数不是守护进程的进程都有一个与自己相关联的控制终端,控制终端决定了为标准输入,标准输出和标准错误通道而提供的默认链接.当用户从shell启动一个命令时,他的终端通常就成为该进程的控制终端.
3.进程的生命周期
为了创建一个新进程,一个进程就会用系统调用fork来复制本身.新进程拥有一个不同的PID和它自己记账信息.
除了内核创建的那几个进程以外,其他所有进程都是init的后代.
当一个进程执行完毕时,init调用一个名为_exit的例程来通知内核它已经做好了"消亡"的准备了.它提供一个退出码(整数)表明退出的原因.按照惯例,0表示正常退出
在允许进程完全消失前,linux要求该进程的消亡得到其父进程的确认.
父进程是通过wait来确认的.
如果父进程比子进程消亡得早,那么这些"孤儿"子进程就成为init的子进程
4.信号
信号是进程级的中断请求,系统定义了大约30种不同各类的信号.使用这些信号的方式:
(1).作为一种通信手段在进程之间发送信号
(2).当键入特殊按键时,比如<ctrl-c>和<ctrl-z>,可以由终端驱动程序发送信号去终止,中断或挂起进程
(3).可以由管理员(使用kill命令)发送信息来达到各种結果
(4).当进程出错时,可以由内核发送信号
(5).可以由内核发送信号,通知一个进程有某种"受关注的"条件出现,比如一个子进程消亡或在I/O通道上有数据
当收到信号时,可能发生两种情况之一.
如果接收进程已经为这个特定信号指派了一个信号处理例程,处理之
否则,内核代表该进程采取某种默认措施.
一些基本的信号:
# | 名称 | 描述 | 默认 | 是否能捕获? | 是否能封锁? | 是否转储内存映像 |
1 | HUP | 挂起 | 终止 | 是 | 是 | 否 |
2 | INT | 中断 | 终止 | 是 | 是 | 否 |
3 | QUIT | 退出 | 终止 | 是 | 是 | 是 |
9 | KILL | 杀死 | 终止 | 否 | 否 | 否 |
b | BUS | 总线错误 | 终止 | 是 | 是 | 是 |
11 | SEGV | 段错误 | 终止 | 是 | 是 | 是 |
15 | TERM | 软件终止 | 终止 | 是 | 是 | 否 |
b | STOP | 停止 | 停止 | 否 | 否 | 否 |
b | TSTP | 键盘停止 | 停止 | 是 | 是 | 否 |
b | CONT | 停止以后继续 | 忽略 | 是 | 否 | 否 |
b | WINCH | 窗口改变 | 忽略 | 是 | 是 | 否 |
b | USER1 | 用户定义 | 终止 | 是 | 是 | 否 |
b | USER2 | 用户定义 | 终止 | 是 | 是 | 否 |
也可以使用# kill -l 获得一份信号清单
一个程序崩溃次数中99%最終都可以归结为是BUS,SEGV这两种错误的一种.它们都表明有不正确使用或访问内存的企图
KILL STOP信号不能被捕获,封锁或忽略。KILL信号清除接收到它的进程,STOP信号挂起正在执行的进程,一直到该进程接收到CONT信号为止.
TSTP信号是STOP信号的一个"软"版本,应该是对"停止"的请求.这是由用户在键入<ctrl+z>时由终端驱动程序生成的信号.
INT是由<ctrl+c>产生的信号,终止当前操作的请求
5. kill和killall : 发送信号
# kill [-signal] pid
# kill -15 4333 或 kill -TERM 4333
一般pid都是使用ps命令找出,
也可以使用#killall comn_name 来匹配找到相关的PID
6.进程的状态
Runnable, Sleeping, Zombie, Stopped
7.使用ps,top监视进程
# ps aux 或 ps lax 都能得到比较祥細的信息
top是动态更新活动进程以及其所使用资源情况的汇总信息
8./proc文件系统
linux版的ps,top命令都是从/proc目录读取进程的状态信息,内核把有关系统状态的各种有意义的信息都放在这个伪目录里.
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
老男孩linux笔记
Linux笔记——vim常用操作及扩展补充[手册] Linux笔记——linux常用命令集合 Linux笔记——命令:awk Linux笔记——命令:sed Linux笔记——命令:grep Linux笔记——命令:find Linux笔记——命令:Sort,uniq,join,...
本篇课堂笔记主要从Java全栈开发的角度出发,针对Linux的学习和应用进行了深入讲解。 首先,课堂笔记强调了学习Linux的理由。尽管Linux在桌面操作系统上很难取代Windows的主流地位,但其在服务器端和开发领域却...
Linux 进阶篇 3 Linux 高级篇 4 第 1 章 Linux 快速入门 5 第 2 章 Linux 发展及系统安装 15 第 3 章 CentOS 系统管理 42 第 4 章 Linux 必备命令 72 第 5 章 Linux 用户及权限管理 93 第 6 章 Linux 软件包企业实战...
《马哥的Linux学习笔记》是一份针对初学者和进阶者精心编撰的Linux教程,旨在帮助读者全面掌握Linux操作系统的核心概念、命令行操作以及系统管理技能。这份笔记以清晰明了的语言和实例解析了Linux系统的各个方面,是...
韩顺平2018Linux视频笔记,我添加了书签
以上就是“Linux笔记笔记笔记笔记”所涵盖的主要知识点,这些内容覆盖了Linux系统的基本操作、网络编程、脚本编写、版本控制等多个方面,对于提升Linux技能和解决实际问题大有裨益。学习并熟练掌握这些知识,能够...
这份“Linux笔记.zip”文件显然包含了关于Linux操作系统的详细学习资料,特别是对命令行操作的总结。以下是根据标题、描述和标签生成的相关知识点: 1. **Linux命令**:Linux的核心在于其命令行界面,其中包含了...
这份"Linux学习笔记(强悍总结值得一看)"是Linux初学者的宝贵资源,也适合有经验的用户作为参考手册。以下是对笔记内容的详细概述: 1. **Linux常用命令**: Linux命令行是其强大的工具,掌握常用命令是Linux学习...
常规的linux笔记
Linux笔记全套-最新版.zipLinux笔记全套-最新版Linux笔记全套-最新版Linux笔记全套-最新版Linux笔记全套-最新版Linux笔记全套-最新版Linux笔记全套-最新版Linux笔记全套-最新版Linux笔记全套-最新版Linux笔记全套-...
Linux笔记,笔记中包含Linux的知识点,但是我还没有完全整理完,后面我会补上的!
Linux笔记 配合我的博客使用 为我的博客Linux常用命令文本版
【国嵌Linux笔记】 在IT领域,Linux是一个广泛使用的开源操作系统,它的内核由林纳斯·托瓦兹(Linus Torvalds)于1991年创建。Linux以其稳定、安全、高效和可定制性著称,尤其在服务器、云计算、物联网(IoT)以及...
【标题】"黑马Linux笔记.zip"是一个包含了作者在学习Linux操作系统过程中所整理的学习资料的压缩包。这个压缩文件主要是为了帮助读者深入理解Linux系统的核心概念、命令操作以及系统管理技能。 【描述】"黑马学习...
韩顺平 LINUX平台 课堂学习笔记 包括1,2,3,4,5
Linux笔记xmind文档,linux命令整理
Linux 笔记 一、Linux 概述 Linux 是一个开源的操作系统,由 Linus Torvalds 于 1991 年创建。它是一种自由、开放的操作系统,任何人都可以自由地使用、修改和分发。 二、Linux 的特点 1. 严格区分大小写 2. ...
我自己看完韩顺平老师在尚硅谷发布的新版的Linux的视频,看到了在Linux下安装Tomcat,JDK这个地方,不包含shell编程的笔记。因为以前我觉得Linux很难,所以一直想学会,这次笔记做得比较详细。另一个亮点是使用...
3. **权限与用户管理**:Linux的安全性依赖于严格的权限系统,笔记会涉及用户和组的概念,以及chmod、chown、chgrp等命令的使用。 4. **网络配置与服务**:Linux作为服务器操作系统,网络知识必不可少。笔记可能...