【Linux】进程状态。重点僵尸进程,孤儿进程

我们都知道进程可以认为是一个运行的程序,那么为了弄明白正在运行的进程是什么意思,我们需要先了解进程的状态。。。下面的状态在kernel源代码中定义:

 1.进程状态

         R运行状态:并不意味着进程一定在运行中,它表明进程要么在运行中要么在运行队列里。
         S睡眠状态(可中断睡眠):意味着进程在等待事件完成。
         D磁盘休眠状态(不可中断睡眠):这个状态的进程通常会等待IO的结束。
         T停止状态:可以发送SIGSTOP给进程来停止进程,这个被暂停的进程可以发送SIGCONT信号让进程继续运行。
         t跟踪状态:
         X死亡状态:这个状态只是一个返回状态,你不会在任务列表中看到这个状态。
         Z僵尸状态:
   2.僵尸进程:
        2.1产生原因:
              2.10.子进程先于父进程退出。
           2.1.1.子进程退出,为了保存自己的退出原因,因此这个退出后资源不会被完全释放,等待父进程来获取退出状态,然后释放子进程所有资源。
             2.1.2假如父进程没有关心子进程的退出,那么这时候这个退出的子进程将成为僵尸进程,占用着系统资源而不释放,造成资源泄露。
        2.2危害:资源泄露,正常进程可能无法创建。
            子进程先于父进程退出,父进程没有关心子进程的退出状态,所以【形成僵尸状态】。
            僵尸进程退出:kill -9强制杀死
    3.孤儿进程:

        3.1产生原因:父进程先于子进程退出,那么子进程就成为孤儿进程,那么这个子进程将被孤儿院init进程所领养,释放由init释放
            

猜你喜欢

转载自blog.csdn.net/hgelin/article/details/82725481