进程状态

进程状态有:就绪 / 运行 / 阻塞
linux下进程的状态
运行态 R:就绪以及正在运行,运行状态的进程才会被操作系统调度在cpu上运行
可中断休眠态 S:当前的阻塞能够被中断唤醒的休眠状态
不可中断休眠态 D:当前的阻塞不会被中断唤醒,等待条件满足自动唤醒
暂停态 T:停止运行,什么都不做
僵尸态 Z:进程已经退出了但是资源没有完全被释放的一种状态 (这是一种等待后续处理的状态)
可中断休眠状态展示S
loop.c代码

#include<stdio.h>
#include<unistd.h>
int main()
{int a = 0;sleep(5)while (1){++a;}return 0;
}

运行后查看进程状态pu -aux | grep loop

S表示的就是该进程处于可中断休眠状态
经过5秒后自动唤醒

暂停状态展示T
当你尝试杀死前面的那个进程,但是在查看进程信息时,该进程还是存在,但是是暂停状态。

运行状态展示R
loop.c代码

#include<stdio.h>
int main()
{while (1){}return 0;
}

运行后查看进程状态pu -aux | grep loop

僵尸状态展示Z
f.c代码

#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>int main(){pid_t pid;pid = fork();while (1){sleep(1);printf("---child...pid:%d\n",getpid());printf("---father...pid:%d\n",getpid());}return 0;}

运行后查看进程状态ps -efl | head -n 1 && ps -efl | grep f

第一个是父进程,第二个是子进程。我们现在杀死子进程kill 4884
再查看进程状态ps -efl | head -n 1 && ps -efl | grep f

可以发现第二个的子进程已经是僵死状态

命令:
kill 进程号 杀死进程
kill -9 进程号 强制杀死进程

僵尸进程:处于僵死状态的进程,指的是进程已经退出不在运行,但是资源没有完全释放
僵尸进程产生的条件:子进程先于父进程退出,但是父进程没有进行进程等待,导致无法获取子进程的退出状态,因此操作系统无法直接释放子进程资源
资源没释放完是因为要保存僵尸进程的退出原因
僵尸进程的危害:资源泄漏(占据内存、进程数量等),一个用户所能创建的进程数量是有限的,并且资源没有完全回收,会占用内存资源。
处理僵尸进程的方法
退出父进程(父进程退出,子进程保存退出原因就没有意义了)
避免僵尸进程的方法
进程等待

孤儿进程:父进程先于子进程退出,则子进程称为孤儿进程,这孤儿进程的父进程成为了1号进程,并且这个孤儿进程运行在后台,并不占据前台终端。孤儿进程不会成为僵尸进程。
守护进程:是一种特殊的孤儿进程,父进程是1号(init)进程,运行在后台,与终端以及登录会话脱离关系,不再受影响。守护进程通常是一种运行在系统后台的批处理(默默的做一些循环往复的事情)
精灵进程:就是守护进程

Linux linux下的进程状态相关推荐

  1. Linux系统下基本命令

    Linux系统下基本命令: 要区分大小写 uname 显示版本信息(同win2K的 ver) dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir) pwd 查询当前所在的 ...

  2. 【Linux 内核】进程管理 ( Linux 内核中的进程状态 | TASK_RUNNING | TASK_INTERRUPTIBLE | __TASK_STOPPED | EXIT_ZOMBIE )

    文章目录 一.Linux 内核中的进程状态 二.TASK_RUNNING 状态 三.TASK_RUNNING 状态 四.TASK_UNINTERRUPTIBLE 状态 五.__TASK_STOPPED ...

  3. Linux系统下常见性能分析工具的使用

    在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...

  4. Linux/Unix下的任务管理器-top命令

    Linux/Unix下的任务管理器-top命令 Posted on 2012-07-11 09:14 fengyv 阅读(15453) 评论(1) 编辑 收藏 Windows下的任务管理器虽然不好用( ...

  5. linux 性能教程,Linux系统下常见性能分析工具的使用

    在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...

  6. 分析linux系统的运行性能,Linux系统下常见性能分析工具的使用

    在前面的文章中,我简单介绍了影响linux性能的几个方面以及如何解决这些方面的问题,但是如何才能从系统上发现是某个方面或某几个方面出现问题了呢,这就需要使用linux系统提供的几个常用性能分析工具,下 ...

  7. Linux操作系统下进程讲解(史上最强总结)

    Linux操作系统下进程讲解 一.进程的基本概念: 1. 什么是进程 在传统的操作系统中,程序不可以独立的运行,作为资源分配和独立运行的基本单位都是进程.进程的定义是一个可执行中程序的实例,系统中每一 ...

  8. linux环境下查看进程,Linux下查看进程(程序)启动时的环境变量

    背景: 因最近试安装Linux下的jira,有一个中文插件安装后,一旦设置开机启动后,它是英文,而在终端再重新启动一次后呢,似乎插件生效,它又恢复为正常中文界面,我首先想这这涉及到一个环境变量的问题, ...

  9. linux环境下随时照看服务器进程的ps和top命令

    文章目录 前言 ps命令 语法格式 语法规范 常用的ps选项 ps命令的表头 进程状态 常规状态码 BSD格式状态码 进程相关的后续命令 top命令 语法格式 常用的top选项和快捷键 top命令的表 ...

  10. linux环境下的进程

    进程 :程序的一个执行实例,正在运行的程序等,同时是分配系统资源的基本单位 描述进程(PCB):在linux环境下用task_struct的结构体来描述进程,该结构体包含了进程所需要的所有信息. ta ...

最新文章

  1. 一文入门 Python 数据分析库 Pandas
  2. Mybatis报错 TooManyResultsException
  3. 七国要求科技巨头预留后门 应对马甲芯片高度警惕
  4. java标准i o重定向_Java I/O(二)其他常用的输入输出流PrintStream等、标准流重定向...
  5. EntityFramework使用及优化
  6. C# 设置Windows程序窗口为穿透状态
  7. 控制算法(二)—— 模糊控制算法
  8. 各区区号的字段和名称
  9. 苹果手机怎么连接不了无线网络连接服务器,苹果手机连接wifi显示无互联网连接怎么办?...
  10. 开发时几种常见的建模工具
  11. apple关闭双重验证_Apple安全浏览说明-Apple为什么将您的数据发送给Google和腾讯,以及如何将其关闭
  12. SAP 针对国家 country, 维护税码 tax code
  13. MusicLibrary:一个丰富的音乐播放封装库
  14. SVN设置忽略文件夹
  15. html 订阅发布,发布订阅模式.html · Avan/blog_demo_defineProperty - Gitee.com
  16. java基于ssm的道路求援车队管理系统
  17. 计算机音乐来自天堂的魔鬼,来自天堂的魔鬼
  18. npmmirror 中国镜像站,npm设置最新淘宝镜像
  19. ceph rbd mysql_如何在 Kubernetes 环境中搭建 MySQL(三):使用 PVC 挂接 RBD
  20. 微信小程序——绘制折线图

热门文章

  1. r420 raid linux,Dell R420 RAID建立以及系统安装
  2. linux shell ${}简单用法,Linux shell ${}简单用法
  3. 盐城有哪些中专计算机学校,盐城有什么中专学校
  4. eclipse android 第一个程序,Eclipse 开发 Android,第一个 HelloWord 程序(学习1)-Fun言
  5. spring框架 c p标签的区别_Spring学习初体验
  6. win7上的linux环境变量,java之环境变量配置win7andlinux.docx
  7. 学习笔记(04):MySQL数据库运维与管理-02-二进制日志及其管理
  8. 希尔排序python 简书_数据结构_排序_直接插入+希尔排序
  9. c语言编译器查错,C语言编译器的错误信息
  10. Spring DI(依赖注入)构造器注入篇