嵌入式Linux程序如何开机自启动

一起学嵌入式 2024-08-02 07:50

扫描关注一起学嵌入式,一起学习,一起成长


在很多嵌入式系统中,由于可用资源较少,常常在系统启动后就直接让应用程序自动启动,以减少用户操作和节省资源。

如何让自己的应用程序自动启动呢?

1 自启动的三种方式

在Linux系统中,配置应用程序自动启动的方法有以下三种:

1.1 通过/Linuxrc脚本直接启动

Linux内核一旦开始执行,它将通过驱动程序来初始化所有硬件设备,这个初始化过程可以在启动时的PC显示器上看到,每个驱动程序都打印一些相关信息。

初始化完成后,通常调用的是init,通过loader调用init内的init=/app_program语句(通过loader向核心传入init=/program可以定制首先运行的程序)。

比如在桌面Linux系统中,init进程会读取/etc/inittab文件,来决定执行级别和哪些脚本和命令。

嵌入式应用开发中,可以根据实际情况决定是否使用标准的init执行方式,也许这个init是个静态程序,它能够完成我们的嵌入应用的特定任务,那完全不用考虑inittab了,在这里可以采用比较灵活的措施。

1.2 在/etc/init.d下添加启动脚本

主要用来启动一些系统服务,根据runlevel执行rcx.d, 而在rcx.d中都会在最后调用rc.local

一般情况下,大多数的Linux操作系统使用/etc/init.d/(或/etc/rc.d/init.d)下的脚本来配置应用程序的自动启动。

例如,在某些Linux系统中,

corn程序通过/etc/init.d/corn脚本启动,

Apache通过/etc/init.d/httpd启动,

syslogd通过/etc/init.d/syslogd启动,

而sshd则通过/etc/init.d/sshd脚本启动。

通常这些脚本通过来自特定rc.d目录的符号链接运行。

为了配置从哪个rc.d目录运行脚本,Linux系统提供了许多不同的工具,同时也可以手工进行配置。

Linux系统有一个包含所有实际启动脚本文件的目录。它可能是/etc/init.d,也可能是/etc/rc.d/rc.d。

同时对应每个运行级别(runlevel)又有一个另外的目录,它们可能是/etc/rc2.d,也可能是/etc/rc.d/rc2.d。这些目录中的文件通常是指向实际脚本文件的符号链接。

1.3 直接在/etc/rc.d/rc.local脚本中添加命令

在Linux系统中,有一个类似Windows系统中autoexec.bat的文件,它就是/etc/rc.d/rc.local,系统开机后自动运行用户的应用程序或启动系统服务的命令保存在开发板根文件系统的这个文件中。

因此可以编辑rc.local文件,将要执行的程序(命令)添加到该文件夹中。Linux系统在启动后还未登录前,将自动执行该程序(命令),达到开机自动运行用户的应用程序的目的。

2 运行级别

2.1 Linux系统有7个运行级别(runlevel)

  • 运行级别0:系统停机状态,系统默认运行级别不能设为0,否则不能正常启动
  • 运行级别1:单用户工作状态,root权限,用于系统维护,禁止远程登陆
  • 运行级别2:多用户状态(没有NFS)
  • 运行级别3:完全的多用户状态(有NFS),登陆后进入控制台命令行模式
  • 运行级别4:系统未使用,保留
  • 运行级别5:X11控制台,登陆后进入图形GUI模式
  • 运行级别6:系统正常关闭并重启,默认运行级别不能设为6,否则不能正常启动

2.2 运行级别的原理

  • 在目录/etc/rc.d/init.d下有许多服务器脚本程序,一般称为服务(service)(注:自己常用的有/etc/init.d/network...)
  • 在/etc/rc.d下有7个名为rcN.d的目录,对应系统的7个运行级别
  • rcN.d目录下都是一些符号链接文件,这些链接文件都指向init.d目录下的service脚本文件,命名规则为K+nn+服务名或S+nn+服务名,其中nn为两位数字。
  • 系统会根据指定的运行级别进入对应的rcN.d目录,并按照文件名顺序检索目录下的链接文件
    • 对于以K开头的文件,系统将终止对应的服务
    • 对于以S开头的文件,系统将启动对应的服务
  • 查看运行级别用:runlevel
  • 进入其它运行级别用:init N
  • 另外init0为关机,init 6为重启系统

3 linux系统开机流程

1、机器开机通电bios质检,质检通过后,bios会根据boot菜单,选择从硬盘启动。

2。读取硬盘中的MBR(主引导记录),加载引导程序(linux中是grub),grub程序会加载系统kernel和虚拟文件系统。

3、系统会运行init程序,该进程会读取/etc/inittab配置文件,决定运行级别,运行/etc/rc.d/rc.sysinit脚本对系统进行初始化,该脚本会设置系统时间,主机名,开启卷管理,以读写的方式重挂root文件系统,挂载本地文件系统,开启本地磁盘配额,开启交换空间。

4、运行该运行级别下的/etc/rc.d/rcN.d/下的脚本,开启系统服务进程。

5、读取/etc/rc.d/rc.local下的命令,并逐条运行。

6、启动虚拟终端,进入登录界面。


来自:码农爱学习

文章来源于网络,版权归原作者所有,如有侵权,请联系删除。



关注【一起学嵌入式】,回复加群进技术交流群。




觉得文章不错,点击“分享”、“”、“在看” 呗!

一起学嵌入式 公众号【一起学嵌入式】,RTOS、Linux编程、C/C++,以及经验分享、行业资讯、物联网等技术知
评论 (0)
  • 作者介绍 一、Skydel与NI USRP软件定义架构(Software Defined Architecture)是一种新型的架构模式,它是一种基于软件的架构,通过软件来定义系统的功能,从而提高系统的运行效率和能量效率。软件定义架构可以将硬件资源抽象化,从而使得应用程序可以更好地利用硬件资源,提高系统的性能和可靠性。Skydel GNSS仿真引擎是创新型的软件定义GNSS模拟仿真引擎,它利用PC的GPU的计算能力并借助Nvidia GPU极快的数学计算能力处理星座、频率与轨迹信息,并
    虹科测试测量TM 2024-09-14 15:33 22浏览
  • 随着物联网(IoT)、工业自动化、医疗设备等领域对嵌入式系统的需求不断增加。嵌入式核心板(SOM)作为嵌入式系统的核心组件,其市场需求也随之增长。在快速发展的同时,也面临一定的挑战:如进口芯片供应链不可控、单一平台受地域政策限制、多平台产品开发周期长、开发难度高等问题,米尔电子设计开发了纯FPGA 开发平台,支持一款平台,双芯设计,支持同款底板可换国产和进口芯片,推出MYIR 7A100T和PG2L100H核心板,解决客户对国内国际市场的不同需求。国产开发维护与进口主流出货痛点痛点一 政策受限,
    米尔电子嵌入式 2024-09-14 14:56 16浏览
  •  电机转速传感器是一种将电机旋转速度转换为可测量电信号的装置,它不仅是电机控制系统中的重要组成部分,更是实现设备精准控制、提高生产效率的关键。无论是风力发电、汽车制造还是工业自动化领域,电机转速传感器都发挥着不可替代的作用。 一、揭秘电机转速传感器的工作原理电机转速传感器的工作原理多种多样,但核心思想都是通过感知电机的旋转运动,并将其转换为电信号输出。以下介绍几种常见的转速传感器类型及其工作原理: (1)磁电式转速传感器 磁电式转速传感器以其结构简单、抗干扰性强而广受青睐。它主要由铁芯、磁钢和感
    博扬智能 2024-09-14 15:59 18浏览
  • 采用快速紧凑的 Raspberry Pi 计算模块3(Raspberry Pi Compute Module 3)的简易设置,为Korg备受推崇的高端乐器提供了一种经济高效的解决方案。解决方案:Compute Module 3企业规模:大型企业行业:音乐技术标志性的乐器制造商Korg起源于20世纪60年代的日本,最初将鼓机推向市场,随后是日本第一台合成器和世界上第一台针式调音器。随着20世纪70年代和80年代电子音乐的兴起,Korg在国际上声名鹊起。随着对功能更强大且更实惠的合成器的需求不断增长
    树莓派开发者 2024-09-14 14:54 10浏览
  • 2024年9月14日  Global Info Research行业调研机构发布的《全球人工智能实验室行业总体规模、主要厂商及IPO上市调研报告,2024-2030》分析了全球人工智能实验室总体规模,主要地区规模,主要企业规模和份额,主要产品分类规模,下游主要应用规模等。统计维度包括收入和市场份额等。不仅全面分析全球范围内主要企业竞争态势,收入和市场份额等。同时也重点分析全球市场主要厂商(品牌)产品特点、产品规格、收入、毛利率及市场份额、及发展动态。历史数据为2019至2023年,预测
    GIRtina 2024-09-14 13:41 57浏览
  • 在信息安全的诸多领域之中,密码的安全存储无疑已然成为最为核心的问题之一。随着攻击技术的不断演进,传统的密码存储方法已无法抵御现代复杂的威胁。更为安全、健壮的密码存储机制也成为当代信息安全从业者的关注点。本篇文章将引入并介绍密码存储中的基石,关于密码哈希、盐加密(Salting)、密钥派生函数(KDF)的原理及其应用,揭示密码存储中的常见误区,并分享一系列安全实践。一、为什么不能使用明文存储密码直接将密码以明文存储在数据库中无异于为攻击者打开了方便之门。一旦数据库遭遇泄露,攻击者将轻而易举地获得所
    艾体宝IT 2024-09-14 17:40 43浏览
  •  电机转速传感器是工业自动化和控制系统中的重要元件,它们能够实时、准确地测量电机或其他旋转设备的转速,确保系统运行的稳定性和可靠性。随着技术的发展,电机转速传感器的种类和类型日益丰富,以满足不同应用场合的需求。 电机转速传感器是用于测量电机转速的设备,广泛应用于工业自动化、车辆、家电等领域。根据工作原理和应用场景,电机转速传感器主要可以分为以下几种类型: 1、光电传感器: (1)光电编码器:通过光学原理测量转速,通常由一个旋转的编码盘和光源组成。编码盘上有透明和不透明的区域,光源通过编码盘产生脉
    博扬智能 2024-09-14 17:26 33浏览
  •  电容位移传感器将继续向更高精度、更高灵敏度、更小型化的方向发展。随着物联网、大数据等技术的不断普及,电容位移传感器将与更多领域相结合,为人类创造更加美好的未来。 一、电容位移传感器的构成 电容位移传感器通常由两个平行极板构成,其中一个极板固定不动,另一个极板与被测物体相连,随被测物体的位移而移动。当被测物体发生位移时,两个极板之间的距离会发生变化,从而导致电容值的变化。通过测量这一变化,就可以准确地知道被测物体的位移量。 二、电容位移传感器的优势 1.高精度:具有极高的测量精度,能够满足各种高
    博扬智能 2024-09-14 15:35 21浏览
  • 最近,巴黎奥运会将全球人民的心捆绑在一起,奥林匹克精神的魅力也让低沉已久的大众情绪再度昂扬。在这样一场场顶尖运动员大展身手的体育盛事中,你可能会好奇,运动员们如何在激烈的比赛中保持最佳状态呢?特别是对于耐力运动员?这就不得不提到一个关键因素——体温管理。比如游泳。当地时间8月4日,在巴黎奥运会男子4×100米混合泳接力决赛中,由徐嘉余、覃海洋、孙佳俊、潘展乐组成的中国队夺得金牌。这是中国游泳队首次获得该项目的奥运金牌,更是打破了美国队在该项目奥运会历史上长达40年的金牌垄断。在全民感慨游泳健儿拼
    艾迈斯欧司朗 2024-09-14 17:35 31浏览
  • 2024年9月14日,调研咨询机构环洋市场咨询出版的《全球D级全动飞行模拟机行业总体规模、主要厂商及IPO上市调研报告,2024-2030》,主要调研全球D级全动飞行模拟机总体规模,主要地区规模,主要企业规模和份额,主要产品分类规模,下游主要应用规模以及未来发展前景预测。统计维度包括销量、价格、收入,和市场份额。同时也重点分析全球市场主要厂商(品牌)产品特点、产品规格、价格、销量、销售收入及发展动态。历史数据为2019至2023年,预测数据为2024至2030年。 调研机构:Global In
    GIRtina 2024-09-14 11:59 56浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦