首先对于fork命令 通过fork命令创建进程 父进程返回子进程id 子进程返回0 失败返回-1 对于pipe通讯机制 pipe通讯是半双工的 也就是说只能一方读一方写 题目中想要P1的输出作为P2的输入 那么就需要关闭P1的读状态描述符 思路: 创建3个子进程 创建两个pipe管道 ,P1 P2 ...
分类:
系统相关 时间:
2019-12-01 16:55:20
阅读次数:
270
UNIX 存在一种机制:在每个进程退出的同时,操作系统释放该进程所有资源,但仍然保留一定的信息(PID / Status / runtime),直到父进程执行 wait() / waitpid(),以便父进程得到子进程状态信息 此时这个子进程就由正常进程(Running)变成了僵尸进程(Zombie ...
分类:
系统相关 时间:
2019-11-25 18:33:29
阅读次数:
92
fork(): pid=fork()之前,只有一个进程在执行这段代码,但在这条语句之后,就变成两个进程在执行了,这两个进程的代码部分完全相同。 两个进程中,原先就存在的那个被称作“父进程”,新出现的那个被称作“子进程”。父子进程的区别除了进程标志符(process ID)不同外,变量pid的值也不相 ...
分类:
系统相关 时间:
2019-11-21 20:01:56
阅读次数:
83
##进程import osimport signalsignal.signal(signal.SIGCHLD, signal.SIG_IGN) #signal防止僵尸进程 # 其他方法:1.父进程内pid,status=os.wait() 2.子进程内创建二级子进程(父退出os._exit(0)/s ...
分类:
系统相关 时间:
2019-11-19 13:35:16
阅读次数:
62
int pid = fork(); if (pid == -1 ) {//返回-1,说明fork失败 perror("fork"); exit(1); } else if (pid > 0) {//返回子进程pid,说明是父进程 } else if (pid == 0) {//返回0,说明是子进程 ...
分类:
系统相关 时间:
2019-11-16 23:05:58
阅读次数:
88
1:redis持久化的2种方式 RDB以及AOF RDB每次进行快照方式会重新记录整个数据集的所有信息。RDB在恢复数据时更快,可以最大化redis性能,子进程对父进程无任何性能影响。 AOF有序的记录了redis的命令操作。意外情况下数据丢失甚少。他不断地对aof文件添加操作日志记录. 前者是指超 ...
分类:
其他好文 时间:
2019-11-13 12:37:14
阅读次数:
74
用man wait学习wait waitpid的使用 wait()函数功能:wait()函数使父进程暂停执行,直到它的一个子进程结束为止,该函数的返回值是终止运行的子进程的PID. 参数status所指向的变量存放子进程的退出码,即从子进程的main函数返回的值或子进程中exit()函数的参数。如果 ...
分类:
其他好文 时间:
2019-11-10 19:06:10
阅读次数:
91
1. 通过man命令学习wait和waitpid函数的用法 wait与waitpid函数头文件与定义 wait函数功能:父进程一旦调用wait函数就立即阻塞自己,由wait分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销 ...
分类:
其他好文 时间:
2019-11-09 23:25:29
阅读次数:
88
SIGCHLD信号是当子进程终止时向父进程发送的信号;它的语义如下: 如果进程明确的将该信号设置为SIG_IGN,则调用进程不会产生僵尸进程;这种情况下,wait是等不到给子进程收尸的,所以wait阻塞到所有子进程终止后,返回-1,并且将errno设置为ECHILD; 如果进程没有明确的设置捕获该信 ...
分类:
系统相关 时间:
2019-10-30 13:14:12
阅读次数:
103
漏洞描述 在5.1.17之前的Linux内核中,kernel / ptrace.c中的ptrace_link错误地处理了想要创建ptrace关系的进程的凭据记录,这允许本地用户通过利用父子的某些方案来获取root访问权限 进程关系,父进程删除权限并调用execve(可能允许攻击者控制)。 一个影响因 ...
分类:
系统相关 时间:
2019-10-29 13:15:30
阅读次数:
112