zoukankan      html  css  js  c++  java
  • Linux 进程管理与开发0

    1.进程的基本属性

            和进程基本相关的属性有:进程号(PID)、父进程号(PPID)、进程组号(PGID)系统的第一个进程是init进程,他的pid=1

    2.获取进程属性的函数

            extern _pid_t getpid(void);获取本身进程的PID函数 extern _pid_t getppid(void);获取父进程的PID函数 extern _pid_t getpgid(_pid_t _pid);获取本进程的进程组的PID函数,此参数为0则为本进程的进程组的PID如果为其他的值,则返回值就是其他进程组的PID extern _pid_t getpgrp(void);获取当前进程的进程组号

    3、简单程序测试:

    code:

    #include<stdio.h>
    #include<unistd.h>
    int main(int argc,char *argv[])
    {
        int i;
        printf("\tpid\t ppid \t pgid\n");
        printf("parent\t%d\t%d\t%d\n",getpid(),getppid(),getpgid(0));
        for(i=0;i<2;i++)
            if(fork()==0)
                printf("child\t%d\t%d\t%d\n",getpid(),getppid(),getpgid(0));
        return 0;
    }

    gcc –o getpid main.c

    ./getpid

    2011-07-29-10-59 

    在for循环里面开辟了3个进程循环了2次其中2999为整个进程的进程组的pid 2921为父进程就是上一级进程的pid

    查询ps –aux 为bash也就是shell本身的进程

    2011-07-29-11-59

    4.加入一个现有的组或者是一个新的进程组成的系统调用函数setpgid()

       int setpgid(pid_t pid ,pid__t pgid);

        其中第一个参数是为你想修改进程PGID的进程PID,第二个为新的进程组号,如果这两个参数是相等的话。则由Pid指定的进程为进程组长;如果是pid为0,则修改当前进程的pgid,如果是pgid=0,则有指定的进程pid将用于进程组pgid

  • 相关阅读:
    初探nodejs事件循环机制event loop
    夯实基础之--new关键字、instanceOf原理
    分享-结合demo讲解JS引擎工作原理
    Linux-centos安装node、nginx小记
    openlayers5实战--踩坑总结
    node+koa中转层开发实践总结
    vue预渲染实践总结
    css多行省略-webkit-box-orient打包编译后失效原因
    使用mpVue开发小程序实战总结
    Linux crontab定时执行任务
  • 原文地址:https://www.cnblogs.com/xmphoenix/p/2120779.html
Copyright © 2011-2022 走看看