一、概括 系统启动架构图: 上图在Android系统-开篇中有讲解,是从Android系统启动的角度来分析,本文是从进程/线程的视角来分析该问题。 1.1 父进程 在所有进程中,以父进程的姿态存在的进程(即图中的浅红色项),如下: kthreadd进程: 是所有内核进程的父进程 init进程 : 是 ...
分类:
系统相关 时间:
2017-05-20 21:54:30
阅读次数:
660
网络编程知识 索引: 1.处理SIGCHLD信号 当编写fork子进程处理连接的服务器程序时,子进程退出会给父进程产生SIGCHLD信号,父进程若不处理该信号会导致僵尸进程。 处理SIGCHLD信号,使用waitpid调用,不能使用wait简单处理。一般的处理方法如下(信号处理函数): 2.捕获信号 ...
分类:
其他好文 时间:
2017-05-16 14:50:46
阅读次数:
273
代码源自APUE 直接输出到屏幕与重定向到文件的输出内容有差别 "before fork!\n"字符串在重定向到文件时会输出两次,一次是父进程的输出,一次是子进程的输出。这是在最后的退出调用exit(0)标准库函数的情况下 在通过系统调用_exit(0)退出进程的时候,标准输出的内容(通过print ...
分类:
其他好文 时间:
2017-05-16 12:56:38
阅读次数:
167
在正常条件下,我们将程序运行产生的信息打印到控制台实时显示,如果我们想讲一个程序以守护进程的方式进行运行,就需要改变信息的输出方向,将其导向到配置文件里设置的日志文件。 将一个进程转换为守护进程需要进行几个步骤: 1.fork一个新的进程,将父进程退出。 2.将0、1、2三个文件描述符重定向。 3. ...
分类:
系统相关 时间:
2017-05-15 00:37:06
阅读次数:
230
Linux的进程相互之间有一定的关系。比如说,在Linux进程基础中,我们看到,每个进程都有父进程,而所有的进程以init进程为根,形成一个树状结构。我们在这里讲解进程组和会话,以便以更加丰富的方式了管理进程。 进程组 (process group) 每个进程都会属于一个进程组(process gr ...
分类:
系统相关 时间:
2017-05-14 19:40:48
阅读次数:
233
先抄录网上一段对僵死进程的描写叙述: 僵尸进程:一个进程使用fork创建子进程,假设子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描写叙述符仍然保存在系统中。这样的进程称之为僵死进程。在每一个进程退出的时候,内核释放该进程全部的资源,包含打开的文件,占用 ...
分类:
系统相关 时间:
2017-05-13 18:10:17
阅读次数:
284
进程组 一个或多个进程的集合 进程组ID: 正整数 两个函数 getpgid(0)=getpgrp() eg:显示子进程与父进程的进程组id 1 #include <stdio.h> 2 #include <stdlib.h> 3 #include <unistd.h> 4 5 int main() ...
分类:
系统相关 时间:
2017-05-12 14:30:20
阅读次数:
325
一.进程与线程 二.进程启动的三种方式 三.孤儿进程和僵死进程 在linux中,子进程总是由父进程产生的,子进程和父进程是同时运行着的,父进程无法预知子进程什么时候结束,当一个进程完成它的工作后,父进程需要调用waitpid系统调用获取子进程的终止状态。孤儿进程指的是父进程已经运行结束了,而它的子进 ...
分类:
系统相关 时间:
2017-05-12 00:10:58
阅读次数:
307
Linux系统管理09——引导过程与服务控制 一、引导过程总览 1、init进程 ·由linux内核加载运行/sbin/init程序 ·是系统中的第一个进程,所有进程的父进程 ·PID(进程标记)号永远为1 2、Upstart启动方式 初始化配置分散存放,响应不同的启动事件 参数 说明 /etc/i ...
分类:
系统相关 时间:
2017-05-09 19:44:36
阅读次数:
401
进程相关函数 pid_t fork(); 头文件:unistd.h,sys/types.h 作用:建立一个新进程(子进程),子进程与原进程(父进程)共享代码段,并拥有父进程的其他资源(数据、堆栈等)的一个副本。(由于继承了父进程的所有状态,子进程将从fork处往下运行)。(说明:子进程继承父进程的所 ...
分类:
系统相关 时间:
2017-05-08 23:28:39
阅读次数:
326