上篇文章详细介绍了LINUX命令程序通过获取SHELL环境中的数据(此处的数据通常称为环境变量)来输出本机相应的配置数据,从而掌握在LINUX中SHELL环境的搭建技巧。那么,今天,这篇文章主要围绕linux系统中的进程展开描述。
程序与进程的区别
程序的概念:作为二进制文件,属于静态的;
进程的概念:作为程序运行的过程,属于动态的,具有生命周期及其运行状态特征。
说到“进程”,就会联想到“多任务”这个概念。目前几乎所有的操作系统都支持多任务,即操作系统初始化后可支持多任务多进程同时运行或无缝切换。Linux核心是通过使用进程来管理多任务。
在linux系统实际运行当中,服务器有时会变得呆滞,运行缓慢,或者某个程序停止响应。那么,在遇到上述情况如何处理或者应对呢?
进程的工作流程(原理)
当linux系统启动时,linux内核先将一些它自己的活动初始化为进程,然后运行init程序。紧接着,init程序依次地运行一系列的shell 脚本(一般位于/etc目录路径),它们可启动所有的系统服务。当然,许多系统服务将以守护(daemon)程序的形式出现,守护程序仅在后台运行,即使linux系统没有登录,linux系统也会在后台运行一些例行事务。
linux内核维护着所有进程的信息,以此来保持所有任务井然有序。
进程的查看--ps命令(静态查看)
ps,全称process status。先简单举个例子来介绍ps 命令:
[root@linuxProbe ~]$ ps
PID TTY TIME CMD
5198 pts/1 00:00:00 bash
10129 pts/1 00:00:00 ps
//表示有两个进程,分别为进程5198 和进程10129,各自对应的命令是bash命令和ps命令。
// TTY 全称“Teletype”(直译电传打字机),进程的控制终端。
// TIME 字段表示进程所消耗的CPU的时间数量。
默认情况下,ps命令不会显示更多的进程信息,仅仅是列举与当前会话相关的进程信息。那么为了得到更多关于系统运行状态的信息,我们需要将ps命令加上一些选项参数:
[root@linuxprobe ~]$ ps x
PID TTY STAT T ME COMMAND
2799 ? Ssl 0:00 /usr/libexec/bonobo-activation-server –ac
2820 ? Sl 0:01 /usr/libexec/evolution-data-server-1.10 –
//ps命令的常见参数以及作用如下表所示:
参数
作用
-a
显示所有进程(包括其他用户的进程)
-u
用户以及其他详细信息
-x
显示没有控制终端的进程
//STAT全称“state”,代表了进程当前状态,如下表所示:
状态
代表含义
R(运行)
进程正在运行或在运行队列中等待
S(中断)
进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态
D(不可中断)
进程不响应系统异步信号,即便用kill命令也不能将其中断
Z(僵死)
一个已经终止的子进程,但是它的父进程还没有清空它。(父进程没有把子进程从进程表中删除)
T(停止)
已停止,进程收到停止信号后停止运行。
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?