process_control

  1 进程控制
  2 
  3 ps aux
  4 ps axj
  5 ps axf
  6 ps axm
  7 
  8 一.进程标识符
  9     pid_t ---->long int
 10     进程的独一无二的标识
 11 
 12     0    调用进程(内核)
 13     1    init进程(用户态所有进程的祖先进程)
 14 
 15     getpid(2);
 16     getppid(2);
 17 
 18 进程的状态
 19     S    可中断的睡眠态
 20     R    运行态
 21     D    不可中断的睡眠态
 22     T    停止态
 23     X    终止态
 24     Z    僵尸态
 25 进程优先级
 26     s    会话组长
 27     l    多线程
 28     <    高优先级
 29     N    低优先级
 30     +    在前台进程组
 31 
 32 二.fork(2)
 33 父子进程之间的不同:
 34     <1>pid
 35     <2>ppid
 36     <3>记录锁
 37     <4>资源使用量和进程时间清零
 38     <5>未决信号
 39     <6>未决闹钟
 40     <7>fork返回值
 41 
 42 fork()创建子进程
 43     <1>不能保证哪个进程先运行
 44     <2>采用copy-on-write    
 45     <3>在父进程中返回子进程id,子进程中返回0
 46 
 47 vfork()创建子进程
 48     <1>保证子进程先运行
 49     <2>共享父进程数据段及栈
 50     <3>用_exit(2)或者_Exit(2)终止进程    
 51 
 52 孤儿进程
 53 僵尸进程
 54 
 55 三.wait(2)和waitpid(2);
 56     
 57     wait(&status); == waitpid(-1, &status, 0);
 58                     
 59 四.exec(3);
 60     execl();
 61     execv();
 62     execlp();
 63     execvp();
 64     execle();
 65 
 66 五.
 67 进程关系
 68     1.会话(session):一个或多个进程组组成的
 69     getsid(2);
 70     setsid(2);
 71 
 72     2.进程组:一个或多个进程组成的
 73     getpgrp(2);
 74     getpgid(2);
 75     setpgid(2);
 76 
 77 守护进程
 78     <1>进程组的leader PGID == PID
 79     <2>会话的leader      SID == PID            
 80     <3>脱离控制终端
 81 
 82 创建守护进程步骤:
 83     <1>umask(0);
 84     <2>chdir("/");
 85     <3>关闭0,1,2
 86     <4>child-->setsid();
 87 
 88 log日志的书写
 89     openlog();
 90     syslog();
 91     closelog();
 92 
 93     daemon(3);
 94 
 95 六.竞争条件
 96     parent--->wait();
 97     child--->getppid() == 1
 98 
 99 七.system(3)
100     fork()-->exec("/bin/sh", "sh", "-c", "ls -l", NULL)    
101 
102 八.更改用户id和组id
103     实际用户id
104     有效用户id:校验文件权限     u+s
105     保存设置用户id    
106     
107     setuid(2);
108     getuid(2);
109     geteuid(2);
110 
111 九.进程时间
112     times(2);
113 
114     real: >= sys+user;
115     sys:
116     user:
117 
118 十.解释器文件
有时候,不小心知道了一些事,才发现自己所在乎的事是那么可笑。
原文地址:https://www.cnblogs.com/axjlxy/p/6724266.html