Linux进程

查看进程的Linux命令

1. ps -aux
       查看系统中所有进程的信息和状态
          
        PID:进程的id号 
        PPID:父进程ID号

        父进程:创建新进程的进程称父进程
        子进程:创建出来的新进程

         ps -aux | grep a.out
         组合命令:
          |  管道:将前面的输出作为后面的输入
          grep : 查找匹配

   2. top
      动态查看当前系统进程状态及CPU/内存占有率
    3. ps -ef
        查看进程状态信息和父子进程ID号

    4. pstree
        查看进程间的关系

        pstree -p
        查看进程间的关系(带ID号)

         pstree -sp 进程ID
         查看某个进程的关系图

     5.  kill
         给进程发送信号
          kill -l
          查看系统定义的信号
          kill  -信号编号/信号名称 接收信号的进程ID

      6. jobs
          产看后台进程编号(当前终端)
          fg 后台编号
          将进程调到前台
 

Linux进程相关函数

pid_t  fork(void);
     功能:通过拷贝父进程产生一个新的子进程
                 拷贝父进程0-3G的虚拟内存
                 内核中拷贝父进程的PCB块,更新自己的PID号
                 父进程和子进程用户空间互相独立,数据不共享。
     参数:
     返回值:
            成功:父进程:子进程的pid号
                        子进程:0
            失败:-1

       pid_t getpid(void);
       获取当前自己进程的ID号
       pid_t getppid(void);
        获取自己的父进程的ID号

进程的消亡

1. 进程退出
         1.  从main函数return
         2. exit, _exit, _Exit
             exit :退出进程会刷新缓冲区
             _exit, _Exit: 系统调用,退出进程不会刷新缓冲区
         3.  被动结束:信号结束 
        
      2. 进程资源回收
        
          僵尸进程:进程已结束,但其资源空间未被其父进程回收。
               
              如何避免僵尸进程:
               1.  子进程结束,其父进程使用wait/waitpid回收资源空间
               2.  让子进程成为一个孤儿进程,孤儿进程会被系统中的进程收养,由系统进程负责回收。
          
          孤儿进程:父进程先消亡,由该父进程产生的子进程成为孤儿进程,将会被系统进程所收养。
                           守护进程

相关函数

void exit(int status);
功能:退出一个进程
参数:
          status:退出时的状态值(可以传递个父进程)
                     EXIT_SUCCESS: 0  --->一切正常  退出
                     EXIT_FAILURE : 1---》当进程发生错误,主动退出
 pid_t wait(int *wstatus);
功能:阻塞回收子进程空间和退出时状态
参数:
         wstatus:需要保存的回收的子进程状态值的地址
                      NULL :不保存状态
返回值:
     成功:返回回收到的子进程的ID号
     失败:-1

wait(NULL);

      pid_t waitpid(pid_t pid, int *status, int options);
    功能:回收指定进程的资源
        和wait功能相似,比wait更灵活
    参数:
    pid:
        <-1 回收指定进程组内的任意子进程 (-100.等待GID=100的进程组中的任意子进程)
        -1 回收任意子进程,组内外
        0 回收和当前调用waitpid一个组的所有子进程,组内 
        > 0 回收指定ID的子进程
     status 子进程退出时候的状态,
              如果不关注退出状态用NULL;
     options 选项:
              0  表示回收过程会阻塞等待
            WNOHANG 表示非阻塞模式回收资源。
    返回值: 成功 返回接收资源的子进程pid
            失败  -1
            设定为非阻塞且没有回收到子进程返回0
     waitpid(-1,&status,0)   //默认阻塞  ==wait(&status);
      非阻塞方式+轮询方式:
       waitpid:父进程有自己的任务执行。
        waitpid(-1, NULL,  WNOHANG);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值