进程管理

Linux中的进程管理

匿名 (未验证) 提交于 2019-12-02 21:56:30
--- title: Linux中的进程管理 date: 2019-7-2 categories: - Linux --- ### 查看 #### ps 使用ps查看某个时间点的进程运行情况。ps auxf -> 列出类似于进程树的的程序显示 #### top 使用top动态查看进程的变化。top [-d 数字] | top [-bnp] 参数: -d:配置界面更新的秒数 -b:以批处理的方式处理输出 -n:与-b搭配,配置执行几次top输出的结果 -p:指定监控的pid 在top执行过程中可以使用的命令 ?:显示top中可以输入的按键命令 P:以CPU的使用资源排序 M:以MEM的使用资源排序 N:以PID排序 T:以使用的CPU时间累积(time+)排序 k:给某个PID信号 r:重新配置PID的nice值 q:离开top #### pstree 查看进程间关系。pstree [-A|-U] -[up] 参数: -A:用ASCII字符来连接进程间关系 -U:用utf-8字符来连接进程间关系 -p:列出PID -u:列出每个进程所属账号 ### 管理 通过信号来管理进程 #### kill kill -singnal PID #### killall killall -signal 命令名称 来源:博客园 作者: DaMengZhang 链接:https://www

Linux操作系统--初级--进程管理的命令

匿名 (未验证) 提交于 2019-12-02 21:56:30
pstree   以树形结构显示进程关系     yum install -y psmisc ps   查看进程状态 -- 当前这一刻的进行状态   相关参数   ps的常用组合:     用man ps查看有什么、怎么用     pa -aux       PID       %CPU       %MEN       TTY           R  running           S  sleeping           T  stoped           Z  zombie           附加状态           s    代表是lead(领导)进程           +    前端进程           <    高优先级进程           N    低优先级进程           D    表示不可中断           W    没有足够的内存可以分配     ps -ef       PPID  父进程号       C    进程运行在那个程序上     ps -eo 后面指定自己想看的 top   与ps相反,top查看实时状态,会动态刷新   敲top进行查看,再敲h进入帮助界面   k ---- 关闭进程,输入PID htop   top的高级版本,默认yum源中是没有的,我们需要去官网下载使用 vmstat    

Linux 僵尸进程如何处理

匿名 (未验证) 提交于 2019-12-02 21:53:52
Linux 允许进程查询内核以获得其父进程的 PID,或者其任何子进程的执行状态。例如,进程可以创建一个子进程来执行特定的任务,然后调用诸如 wait() 这样的一些库函数检查子进程是否终止。如果子进程已经终止,那么,它的终止代号将告诉父进程这个任务是否已成功地完成。 为了遵循这些设计原则,不允许 Linux 内核在进程一终止后就丢弃包含在进程描述符字段中的数据。只有父进程发出了与被终止的进程相关的 wait() 类系统调用之后,才允许这样做。这就是引入僵死状态的原因:尽管从技术上来说进程已死,但必须保存它的描述符,直到父进程得到通知。 如果一个进程已经终止,但是它的父进程尚未调用 wait() 或 waitpid() 对它进行清理,这时的进程状态称为僵死状态,处于僵死状态的进程称为僵尸进程(zombie process)。任何进程在刚终止时都是僵尸进程,正常情况下,僵尸进程都立刻被父进程清理了。 僵尸进程是如何产生的 为了观察到僵尸进程,我们自己写一个不正常的程序,父进程 fork 出子进程,子进程终止,而父进程既不终止也不调用 wait 清理子进程: 把上面的代码保存到文件 zomprocdemo.c 文件中,并执行下面的命令编译: 然后运行编译出来的 zomprocdemo 程序: 此时子进程已经退出,但是父进程没有退出也没有通过 wait() 调用处理子进程。我们使用 ps

进程管理 之 基本概念

梦想的初衷 提交于 2019-12-02 20:01:38
在单处理器系统上,在给定时刻只有一个程序可以运行,在多处理器系统上,可以真正并行运行的进程数据,取决于物理CPU的数目; 进程优先级 在比较粗糙的划分中,进程分为实时进程和非实时进程; 1. 硬实时进程具有严格的时间限制,某些任务必须在指定的时间内完成; 2. 软实时进程是硬实时进程的一种弱化形式,尽快需要快速得到结果,但是仍然可以稍微延迟执; 3. 大多数进程是没有特定时间约束的普通进程,它们可以通过重要性来分配优先级; 下面为CPU时间分配图,进程的运行按照时间片调度,分给进程的时间片份额与其相对重要性相当;系统中的时间流动对应圆盘转动,CPU则对应圆周旁的扫描器;最终效果是,尽管所有进程都有机会运行,但是重要的进程会比次要的进程得到更多的CPU时间; 这种方式称之为抢占式多任务处理;各个进程都得到一定的时间运行,在运行时间到期后,内核会从进程收回控制权,让一个不同的进程运行,而不考虑前一个进程执行的上一个任务;被抢占进程的运行环境都会保存起来,在该进程恢复执行时,其进程环境也完全恢复;时间片长度会根据进程的重要性不同而变化; 进程生命周期 当调度器在进程之间切换时,必须知道系统中每个进程的状态; 进程可能有以下几种状态: 1. 运行:此刻进程正在执行; 2. 等待:进程能够运行,但是没有得到许可,因为CPU分配给了另外一个进程,调度器可以在下一次任务切换时选择该进程; 3.

进程管理

你说的曾经没有我的故事 提交于 2019-12-02 15:15:30
计算机是由软件和硬件组成的: 底层的硬件→内核(kernel:输出的借口为system call,用作系统调用)→lib库(库调用;调用就是载入别人事先编写好的功能模块,比如函数、类); 程序由指令和数据组成; CPU上的指令分为普通指令(环三)和特权指令(环零); 特权指令不允许程序随意调用,一般只有内核可以调用;因为特权指令一般是执行硬件操作的,比如读写等,显然类似这些指令是不可能随意授权给普通程序的; 任何程序不得直接使用特权指令,用到的时候可以通过像内核申请系统调用来执行特权指令; 程序执行时是依照指令的顺序由上而下根据选择循环等结构有序的执行; 一个程序运行时一旦需要运行某个特权指令时就会去调用内核,接下来程序会先停止,等待内核把需要调用的功能(特权指令)拿到CPU上来执行,等待执行完成后,将结果返回(调用返回),然后程序继续执行其他操作; 代码执行过程中可能会不断地在自己可以执行的代码和调用由内核执行的代码之间来回转换; 模式切换:(用户代码(用户空间/模式)↔内核代码(内核空间/模式)) 内核的功能:进程管理、文件系统、网络功能、安全功能、内存管理、驱动程序等; 系统运行时会有多个程序一起执行,称作并行执行;是怎么实现的那? 其实当有多个程序一起执行时,系统会把程序对CPU的使用时间切割成时间片,某个程序执行一小段时间后再由下一个程序再执行一小段时间

进程管理工具supervisor

喜你入骨 提交于 2019-12-02 14:57:33
进程管理工具supervisor 一.介绍 1.Supervisor是一个客户/服务器系统,它可以在类Unix系统中管理控制大量进程。Supervisor使用python开发,有多年历史,目前很多生产环境下的服务器都在使用Supervisor。 2.Supervisor的服务器端称为supervisord,主要负责在启动自身时启动管理的子进程,响应客户端的命令,重启崩溃或退出的子进程,记录子进程stdout和stderr输出,生成和处理子进程生命周期中的事件。可以在一个配置文件中配置相关参数,包括Supervisord自身的状态,其管理的各个子进程的相关属性。配置文件一般位于/etc/supervisord.conf。 3.Supervisor的客户端称为supervisorctl,它提供了一个类shell的接口(即命令行)来使用supervisord服务端提供的功能。通过supervisorctl,用户可以连接到supervisord服务器进程,获得服务器进程控制的子进程的状态,启动和停止子进程,获得正在运行的进程列表。客户端通过Unix域套接字或者TCP套接字与服务端进行通信,服务器端具有身份凭证认证机制,可以有效提升安全性。当客户端和服务器位于同一台机器上时,客户端与服务器共用同一个配置文件 /etc/supervisord.conf ,通过不同标签来区分两者的配置。 4

进程管理命令

守給你的承諾、 提交于 2019-12-02 13:15:52
pid:进程的id TTY:进程所属的终端 TIME:进程使用总CPU的时间 CMD :执行的命令 kill 默认是使用15信号用于结束进程,kill 必须先知道进程号 kill -s 9 3306 或者kill -s 9 3306 进程终止进程 注意:信号9会强行终止进程,会带来副作用,包括数据丢失,终端无法恢复到正常状态,尽量避免使用 killall 可以直接使用 killall 进程名字 killall -u 可以知道用户的进程终止 killall -w 等待所有进程死去,每秒检测一次被终止的进程是否存在,只有都死光后才返回,注意: 如果信号被忽略,或者没有起作用,或者进程是僵尸状态,那么killall可能会永久等待 killall -w crond killall -u quan nginx 终止所有归属于quan用户的nginx进程 来源: https://www.cnblogs.com/betterquan/p/11746406.html

内核功能划分

耗尽温柔 提交于 2019-12-02 11:39:25
Unix 系统支持多个进程的并发运行,每个进程都请求资源系统,例如:运算、内存、网络、连接或其他一些资源等。内核负责处理所有这些请求,根据内核完成的任务不同,可将内核划分为以下爱几个部分: 进程管理   进程管理功能负责创建和销毁进程,并处理它们和外部世界之间的连接(输入和输出)。不同进程之间的通信(信号,管道....)是整个系统的基本功能,也有内核处理。除此之外,控制进程如何共享CPU的调度器也是进程管理的一部分。总的来讲,内核进程管理 活动就是在单个或多个CPU上实现了多个进程的抽象。 内存管理    内存是计算机的主要资源之一,用来管理内存的策略是决定系统性能的一个关键因素。内核在有限的可用资源上为每个进程都创建了一个虚拟地址空间。内核的不同部分在和内存管理子系统交互时使用一组函数调用,包括简单的malloc/free函数以及其他复杂的函 · 数。     文件系统    Unix 在很大程度上依赖文件系统的概念,Unix中的每个对象几乎都可以当作文件系统来看待,内核在没有结构的硬件上构造结构化的文件系统,而文件抽象在整个系统中广泛使用。另外,Linux支持多种文件系统类型,也就是在物理介质上组织数据的不同方式。例 如:磁盘可以格式化为符合Linux标准的ext3文件系统,也可以格式化为常用的FAT文件系统或其他种类。 设备控制   

14-1 进程管理与任务计划

无人久伴 提交于 2019-12-02 11:38:46
进程管理与任务计划 系统管理工具 进程的分类: CPU-Bound:CPU密集型,非交互 IO-Bound:IO密集型,交互 Linux系统状态的查看及管理工具:pstree, ps, pidof, pgrep, top, htop, glance, pmap, vmstat, dstat, kill, pkill, job, bg, fg, nohup pstree命令: pstree display a tree of processes ps: process state ps report a snapshot of the current processes Linux系统各进程的相关信息均保存在/proc/PID目录下的各文件中 查看进程ps ps [OPTION]... 支持三种选项: UNIX选项 如-A -e BSD选项 如a GNU选项 如--help 选项:默认显示当前终端中的进程 a 选项包括所有终端中的进程 x 选项包括不链接终端的进程 u 选项显示进程所有者的信息 f 选项显示进程树,相当于 --forest k|--sort 属性 对属性排序,属性前加- 表示倒序 o 属性… 选项显示定制的信息 pid、cmd、%cpu、%mem L 显示支持的属性列表 ps常见选项: -C cmdlist 指定命令,多个命令用,分隔 -L 显示线程 -e

比较CGI,FastCGI,PHP-CGI与PHP-FPM的区别

那年仲夏 提交于 2019-12-02 10:42:14
最早的Web服务器,可以简单地响应浏览器发来的HTTP请求,并将存储在服务器上的HTML文件返回给浏览器,也就是静态html。 随着时间的变化,网站也越来越复杂,所以出现动态技术。但是服务器并不能直接运行 php,asp这样的文件,自己不能做,外包给别人吧,但是要与第三做个约定,我给你什么,然后你给我什么,就是握把请求参数发送给你,然后我接收你的处 理结果给客户端。那这个约定就是 common gateway interface,简称cgi 。 (cgi只是接口协议) image.png cgi就像翻译机,将PHP语言给服务器解释,便于相互之间的理解和通讯,最后呈现给浏览器查看 请求的动态页面模型.jpg WEB服务器将根据CGI程序的类型决定数据向CGI程序的传送方式,一般来讲是通过标准输入/输出流和环境变量来与CGI程序间传递数据。 如下图所示: image.png CGI程序通过标准输入(STDIN)和标准输出(STDOUT)来进行输入输出。此外CGI程序还通过环境变量来得到输入,操作系统提供了许 多环境变量,它们定义了程序的执行环境,应用程序可以存取它们。 Web服务器和CGI接口又另外设置了一些环境变量,用来向CGI程序传递一些重要的参 数。CGI的GET方法还通过环境变量QUERY-STRING向CGI程序传递Form中的数据。 下面是一些常用的CGI环境变量: 变量名