首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

init进程启动过程

首语 init进程是Android系统中用户空间的第一个进程进程号为1,是Android系统启动的一个关键步骤,作为第一个进程,它的主要工作是创建Zygote和启动属性服务等。...init进程是由多个源文件共同组成的,源码目录在system/core/init中。 源码分析 main(入口函数) Linux内核加载完成后,在系统文件中寻找init.rc文件,并启动init进程。...init进程创建子进程ueventd,并将创建设备节点文件的工作交给veventd。veventd通过两种方式创建设备节点文件(冷启动和热启动)。 FirstStageMain。启动第一阶段。...僵尸进程 在Unix/Linux中,父进程fork创建子进程,在子进程终止后,如果父进程不知道子进程已经终止了,这时子进程虽然退出了,但是系统进程表还保留它的信息,这个子进程就被称为僵尸进程。...启动Zygote init进程启动Zygote进程

20720

Android系统启动——2init进程

本次系列的内容如下: Android启动流程——1 序言、bootloader引导与Linux启动 Android系统启动——2 init进程 Android系统启动——3 init.rc解析...7 附录1:Android属性系统 Android系统启动——8 附录2:相关守护进程简介 一、init进程简介 通过上篇文章我们知道,Android设备启动要经过3个阶段,BootLoader...、Linux Kernel和Android系统服务,一般情况下,他们都会相应的启动对动画对应。...这个"根进程"就是init进程init进程是Android系统启动的第一个进程。它通过解析init.rc脚本来构建出系统的初始形态。...二、Init.cpp initLinux系统中用户空间的第一个进程(pid=1),Linux Kernel启动后,会调用/system/core/init/Init.cpp的main()方法 那我们就来看下

2.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

Linux下1号进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度(六)

,如下所示 kernel_init函数将完成设备驱动程序的初始化,并调用init_post函数启动用户空间的init进程。...init进程 随后,1号进程调用do_execve运行可执行程序init,并演变成用户态1号进程,即init进程init进程linux内核启动的第一个用户级进程。...当内核启动了自己之后(已被装入内存、已经开始运行、已经初始化了所有的设备驱动程序和数据结构等等),通过启动用户级程序init来完成引导进程的内核部分。...init同样也收集孤立的进程:当一个进程启动了一个子进程并且在子进程之前终止了,这个子进程立刻成为init的子进程。...systemd Systemd 是 Linux 系统中最新的初始化系统(init),它主要的设计目标是克服 sysvinit 固有的缺点,提高系统的启动速度 浅析 Linux 初始化 init 系统(

3.6K11

Android系统启动流程(一)解析init进程

2.引入init进程 说到init进程,首先要提到Android系统启动流程的前几步: 1.启动电源以及系统启动 当电源按下时引导芯片代码开始从预定义的地方(固化在ROM)开始执行。...3.linux内核启动 内核启动时,设置缓存、被保护存储器、计划列表,加载驱动。当内核完成系统设置,它首先在系统文件中寻找”init”文件,然后启动root进程或者系统的第一个进程。...4.init进程启动 讲到第四步就发现我们这一节要讲的init进程了。关于Android系统启动流程的所有步骤会在本系列的最后一篇做讲解。...在linux新的内核中,epoll用来替换select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。...8.init进程总结 讲到这,总结起来init进程主要做了三件事: 1.创建一些文件夹并挂载设备 2.初始化和启动属性服务 3.解析init.rc配置文件并启动zygote进程

1.7K60

Android init 启动

Android是基于Linux系统的,所以Android启动将由Linux Kernel启动并创建init进程。该进程是所有用户空间的鼻祖。...在init进程启动的过程中,会相继启动servicemanager(binder服务管理者)、Zygote进程(java进程)。而Zygote又会创建system_server进程以及app进程。...此次分析过程基于Android 10.0 init init进程是Android启动过程中在Linux系统中用户空间的第一个进程init启动入口是在它的SecondStageMain方法中。...关于Zygote的启动后续再分析。 今天主要尝试分析了一下Android在Linux系统下的init启动涉及的主要流程。...可见init启动主要涉及的工作是: 创建与挂载启动所需要的文件系统 初始化属性服务 创建single句柄,来监听子进程,防止僵尸进程的产生 开启属性服务 解析.rc文件并启动Zygote进程

2.5K30

linux内核学习(三)之init进程学习(上)

上次讲解到linux内核启动分析的前期准备,还没有去分析linux内核具体启动分析过程,这里我换一种方式来分享,在linux启动后,linux系统接下来会如何进行工作?...然后再反过来具体分析linux内核启动过程,启动过程会设计到一些汇编语言,以及这个时候去具体分析c语言代码的话,就真正考验c语言的功底的时候到了;同时c语言的基本功,大家可以去看我以前学习c语言的一些常用...一、init进程完成了从内核态向用户态的转变: 1、一个进程2种状态: 这里所说的一个进程两种状态,说的是进程状态的转换;首先在介绍这种状态的转换之前,我们来了解一下什么是init进程,它其实是linux...系统在启动后运行的第一个进程(这里关于进程的学习,可以去看我之前分享的linux应用编程专辑,有很详细的介绍);而init进程刚开始运行的时候是内核态,它属于一个内核线程,然后他自己运行了一个用户态下面的程序后把自己强行转成了用户态...,比如我们在windows任务管理器里面就可以看到如下图所示: 在我们linux系统里面的话,在init进程转换为用户状态下后,后面有一些我们比较熟悉的进程操作:login进程、命令行进程、shell

1.4K20

Linux守护进程启动方法

这篇文章主要为大家详细介绍了Linux守护进程启动方法,本文介绍如何将一个 Web 应用,启动为守护进程,感兴趣的小伙伴们可以参考一下 "守护进程"(daemon)就是一直在后台运行的进程(daemon...怎么才能让它变成系统的守护进程(daemon),成为一种服务(service),一直在那里运行呢? 二、前台任务与后台任务 上面这样启动的脚本,称为"前台任务"(foreground job)。...变成守护进程的第一步,就是把它改成"后台任务"(background job)。 $ node server.js & 只要在命令的尾部加上符号&,启动进程就会成为"后台任务"。...三、SIGHUP信号 变为"后台任务"后,一个进程是否就成为了守护进程呢?或者说,用户退出 session 以后,"后台任务"是否还会继续执行? Linux系统是这样设计的。...四、disown 命令 通过"后台任务"启动"守护进程"并不保险,因为有的系统的huponexit参数可能是打开的(on)。 更保险的方法是使用disown命令。

4.4K00

Linux 守护进程启动方法

"守护进程"(daemon)就是一直在后台运行的进程(daemon)。 本文介绍如何将一个 Web 应用,启动为守护进程。 一、问题的由来 Web应用写好后,下一件事就是启动,让它一直在后台运行。...变成守护进程的第一步,就是把它改成"后台任务"(background job)。 $ node server.js & 只要在命令的尾部加上符号&,启动进程就会成为"后台任务"。...三、SIGHUP信号 变为"后台任务"后,一个进程是否就成为了守护进程呢?或者说,用户退出 session 以后,"后台任务"是否还会继续执行? Linux系统是这样设计的。...# 作为前台任务启动 $ forever server.js # 作为服务进程启动 $ forever start app.js # 停止服务进程 $ forever stop Id # 重启服务进程...://localhost:9615 $ pm2 web 十、Systemd 除了专用工具以外,Linux系统有自己的守护进程管理工具 Systemd 。

4.4K50

Linux 守护进程启动方法

Linux 守护进程启动方法 “守护进程”(daemon)就是一直在后台运行的进程(daemon)。 本文介绍如何将一个 Web 应用,启动为守护进程。...变成守护进程的第一步,就是把它改成”后台任务”(background job)。 $ node server.js & 只要在命令的尾部加上符号&,启动进程就会成为”后台任务”。...三、SIGHUP信号 变为”后台任务”后,一个进程是否就成为了守护进程呢?或者说,用户退出 session 以后,”后台任务”是否还会继续执行? Linux系统是这样设计的。...# 作为前台任务启动 $ forever server.js # 作为服务进程启动 $ forever start app.js # 停止服务进程 $ forever stop Id # 重启服务进程...://localhost:9615 $ pm2 web 十、Systemd 除了专用工具以外,Linux系统有自己的守护进程管理工具 Systemd 。

4.9K81

Linux下0号进程的前世(init_task进程)今生(idle进程)----Linux进程的管理与调度(五)【转】

是系统中所有其它用户进程的祖先进程 Linux中的所有进程都是有init进程创建并运行的。首先Linux内核启动,然后在用户空间中启动init进程,再启动其他系统进程。...在系统启动完成完成后,init将变为守护进程监视系统其他进程。.../linux/init_task.h文件中 init_task是Linux内核中的第一个线程,它贯穿于整个Linux系统的初始化过程中,该进程也是Linux系统中唯一一个没有用kernel_thread...新创建的1号进程kernel_init将会逐个启动次CPU,并最终创建用户进程!...1号kernel_init进程完成linux的各项配置(包括启动AP)后,就会在/sbin,/etc,/bin寻找init程序来运行。

4.5K30

Linux系统安全-Linux启动流程和服务管理(init和systemd)

Linux启动流程 Rhel6启动过程: Rhel7启动过程: GRUB2相较于GRUB一代的提升:更健壮、可移植、更强大。...systemd的目标是:尽可能启动更少进程;尽可能将更多进程并行启动。systemd尽可能减少对shell脚本的依赖。...systemd使用了Linux专属技术,不再顾及POSIX兼容。 init和Systemd的区别 init: 一是启动时间长,init是串行启动,只有前一个进程启动完,才会启动下一个进程。...二是启动脚本复杂,Init进程只是执行启动脚本,不管其他事情,脚本需要自己处理各种情况,这往往使得脚本变得很长。...由Linux内核加载运行,位于 /sbin/init ,是系统中第一个进程,PID永远为1。

2.1K10

Linux如何查看进程、杀死进程启动进程等常用命令

进程 使用kill命令结束进程:kill xxx 常用:kill -9 324 Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME...显示进程 命令:ps 格式:ps [option] 功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。...用户名: 对锁定的用户帐号进行解锁 passwd –d 用户名: 使帐号无口令,即用户不需要口令就能登录系统 例:#usermod -l user2 user1 //把用户user2改名为user1 启动...iptables on chkconfig iptables off 即时生效:重启后还原 service iptables start service iptables stop 或者: /etc/init.d.../iptables start /etc/init.d/iptables stop 启动VSFTP服务 即时启动:/etc/init.d/vsftpd start 即时停止:/etc/init.d/

7.6K22

linux_init_and_systemd

一个问题 今天在重启 nginx 服务的时候,注意到有这样一条输出 还有在设置 nginx 开机启动,一般的做法是 把脚本放在 /etc/init.d/ 下然后 用 chkconfig 管理 不过这些都是...”相对过时”做法了,由 service+chkconfig 变成 systemctl,背后是Linux 用户态进程管理体系的一次更改 service+chkconfig 是 system V 的做法 systemctl...System V Release 4,或者称为SVR4,是最成功的版本,成为一些UNIX共同特性的源头, 例如“SysV 初始化脚本”(/etc/init.d),用来控制系统启动和关闭, System...什么是 是systemd systemd是Linux电脑操作系统之下的一套中央化系统及设置管理程序(init), 包括有守护进程、程序库跟应用软件, 由Lennart Poettering带头开发。...自带启动脚本兼容用的systemd启动脚本包以方便用户,使用户能“开箱即用” Chakra GNU/Linux,在2012.10的光盘映像档发布后默认使用systemd。

1.9K10

cloudbase-init启动模式为.cloudbase-init存在隐患

建议cloudbase-init启动模式改为“本地系统账户”,目前发现....\cloudbase-init启动模式存在explorer.exe异常的概率 image.png 异常现象: explorer loop crash(explorer循环crash,一闪一闪,appplication.evtx...的启动模式,制作镜像的几个注意事项: 如果原机器有用userdata,不要执行清理cloudbase-init注册表,原因是,如果创建机器时传了userdata,而userdata代码里有写操作的代码...,那你删除了cloudbase-init的注册表会导致初始化标记为0,下次开机的时候cloudbase-init会认为机器没有初始化过,是新机器,就会自动触发重新执行一遍userdata里的代码,严重点假设...为本地系统帐户、清理本地用户和组里面的cloudbase-init用户 services.msc (在服务列表里改启动模式为“本地系统帐户”) lusrmgr.msc (删掉cloudbase-init

1.3K20

创建Linux服务,轻松管理(自启动,恢复)进程

有这样一个场景,在一台服务器上,我们想要启动一个简单的网络文件服务器,用来提供给内网的用户下载。...这里,我们使用ruby启动一个服务 使用ruby -run -ehttpd /home/webbuild/easy_file_server/ -p8000启动文件服务器 使用ruby -run -ehttpd.../home/webbuild/easy_file_server/ -p8000 & 将该进程设置为后台执行 为了防止挂起,我们还需要使用nohup处理。...但是还有一些问题,比如 进程意外停止了,无法自动启动 服务器重启,该进程也不会自动启动 那么我们有没有什么好的办法解决呢,答案是有的。就是下面介绍的使用systemd创建Linux 服务的方式解决。...其他字段解释 StartLimitIntervalSec 启动频率限制,设置为0 Restart=always 当进程退出后自动重启 RestartSec 重启延迟时间,单位为毫秒 WantedBy 自动启动相关参数

4.4K20
领券