Linux:进程状态

  • 为了弄明白正在运行的进程什么意思,我们需要知道进程不同的状态,一个进程可以有几个状态
    1.运行态(running):并不意味着进程一定在运行中,他表明进程要么在运行要么在运行队列里
    2.可中断睡眠状态(sleeping):意味着进程在等待事件完成
    3.不可中断睡眠状态(disk sleep):在这个状态的进程会等待IO的结束
    4.停止状态(stopped):可以通过发送SIGSTOP信号给进程来停止进程,这个被暂停的进程可以通过发送SIGCONT信号让进程继续运行
    5.死亡状态(dead):这个状态只是一个返回状态,你不会在任何任务列表里看到这个状态
    6.僵尸状态(zombie): 僵死状态是一个比较特殊的状态,当子进程退出但父进程没有读取到子进程退出返回的代码时就会产生僵死状态,僵死进程会占用你的正常资源
  • 一个读取进程状态的代码
    (1)运行态,执行代码后,我们领打开一个终端,输入:ps aux | head -n 1 && ps aux|grep a.out
    可以查看a.out的运行状态,为运行态
    运行态

    (2)睡眠态,我们给while循环里加上sleep(1);的代码然后查看进程状态,为睡眠态
    在这里插入图片描述
    在这里插入图片描述
    (3)停止状态,我们按ctrl+z,进程停止,然后查看进程状态,为停止态
    在这里插入图片描述
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_40853073/article/details/83097555