• <tr id='sqn5lM'><strong id='sqn5lM'></strong><small id='sqn5lM'></small><button id='sqn5lM'></button><li id='sqn5lM'><noscript id='sqn5lM'><big id='sqn5lM'></big><dt id='sqn5lM'></dt></noscript></li></tr><ol id='sqn5lM'><option id='sqn5lM'><table id='sqn5lM'><blockquote id='sqn5lM'><tbody id='sqn5lM'></tbody></blockquote></table></option></ol><u id='sqn5lM'></u><kbd id='sqn5lM'><kbd id='sqn5lM'></kbd></kbd>

    <code id='sqn5lM'><strong id='sqn5lM'></strong></code>

    <fieldset id='sqn5lM'></fieldset>
          <span id='sqn5lM'></span>

              <ins id='sqn5lM'></ins>
              <acronym id='sqn5lM'><em id='sqn5lM'></em><td id='sqn5lM'><div id='sqn5lM'></div></td></acronym><address id='sqn5lM'><big id='sqn5lM'><big id='sqn5lM'></big><legend id='sqn5lM'></legend></big></address>

              <i id='sqn5lM'><div id='sqn5lM'><ins id='sqn5lM'></ins></div></i>
              <i id='sqn5lM'></i>
            1. <dl id='sqn5lM'></dl>
              1. <blockquote id='sqn5lM'><q id='sqn5lM'><noscript id='sqn5lM'></noscript><dt id='sqn5lM'></dt></q></blockquote><noframes id='sqn5lM'><i id='sqn5lM'></i>

                OKMX8MQ-C开发板如何通过Systemd服务实现应用自启

                 赛马彩票i.MX8MQ平台 


                经过之前文章的介绍我们已经了解到OKMX8MQ-C开发板是基于ARM?Cortex-A53和Cortex-M4的内核,具有业界领先的音频、语音和视频处理功能。适用于5G终端、边缘计算网关HMI、V2X、RSU加油机血液分析仪、PCR、瘦主机Ψ等产品应用,以及医疗电力、工业自动化、智慧交通环境监测、智慧水务、能耗管理等行业应用

                这次我们就来介绍一下如何通过systemd服务实〖现音频应用的自启。



                什么是Systemd服务


                Systemd是Linux下的一种init软件,由Lennart Poettering带头开发,并在LGPL 2.1及其后续版本许可证下开源发布。其开发目标是提供更优秀的框架以表示系统服务间的依赖关系,并以此实现系统初始化时,服务的并行启动⌒ ,同时达到降低Shell系统开销的效果,最终代替现在常用的System V与BSD风格的init程序。传统的启动是内核启动完成后,首先执行的第一个进程是/sbin/init。如果要以systemd方式启动,首先让内核执行的第一个程序则是/lib/systemd/system或/usr/lib/systemdsystemd。


                启动后,首先会去三个目录下找相应的配置文件,按优先级从高到底分别为


                /etc/systemd/ /usr/lib/systemd/ /lib/systemd/

                优先级高的配置文件会覆盖优先级低的配置文件。



                Systemd自启应用


                在此,小编介绍一种使用systemd方式来配置任意开机自启动程序的方法。

                为了方便用户测试,小编在系统启动默认加载systemd服务autorun.service。

                在/lib/systemd/system/autorun.sevice可以看到配置文件如下:



                用户可以将自己的开机自启应用程序放到脚本/etc/autorun.sh 中,从而实现开机自启。


                 常见参数解析:


                [unit]区块

                Description 参数代表服务的描述(会在开机终」端中打印)

                Documentation: 文档地址


                After参数表示在等号后边的服务◤起来以后再执行此服务,可以添加想要放在此服务之前的服务。


                [service]区块

                ExecStart 参数代表执行█脚本的绝对路径,默认为/etc/autorun.sh 文件(用户可以自行修改)Type: 定义启动时的进程行为。其常用的几种方式为:

                Type=simple:(默认值)systemd认为该服务将立ㄨ即启动服务进程不会fork 。如果该服务要启动其他服务,就不要使用此类型启动了,除□ 非该服务是socket激活型。

                Type=oneshot:这一选项适用于只执行一项任务、随后立即退出的服务。可能需要同时设置RemainAfterExit=yes使systemd在服务进程退出之后仍然认为服务处于激活状●态。

                Type=idle:systemd 会等待所有任务处理完成后,才开始执行 idle 类型的单元。其他行为与Type=simple 类似。


                [Install]区块 

                WantedBy的值是一个或多个Target,当前Unit激活时(enable)符号链▓接会放入/etc/systemd/system目录下♀面以Target名 + .wants后缀构成的子目录中。

                RequiredBy的值是一个或多个Target,当前Unit激活时(enable)符号链接会放入/etc/systemd/system目录下面以Target名+.required后缀构成的子目录中。

                如果上述方式依然不能满足需▼求,也可以自己添加 system 服务。


                首先将 OKMX8MQ-C开发板上电启动≡,在开发板终端中进入到/home/root/目录下,执行如下命令创建一个脚本文件,并修改权㊣限:

                echo '#!/bin/sh' >> /home/root/helloworld.sh

                echo 'gst-play-1.0 /home/forlinx/audio/test.mp3' >> /home/root/helloworld.sh

                chmod 777 /home/root/helloworld.sh

                进入到“/lib/systemd/system/”目录下,并新建一个helloworld.service文件

                命令如下:

                cd /lib/systemd/system

                vi helloworld.service

                文件的内容如下:

                [Unit]

                Description=helloworld After=basic.service X.service thermal-zone-init.service

                [Service]

                ExecStart=/home/root/helloworld.sh

                [Install]

                WantedBy=multi-user.target


                其中 Description 一行需写入】服务名,ExecStart 需要写入可执行文件的绝对路径。

                保存退出后,在终端上执行如下命令:

                systemctl -f enable /lib/systemd/system/helloworld.service

                此时即可将⊙新添加的自启动服务生效,重启开发板后,此程序会自动运行,在默认端的音频即可听到音频输出。

                —— —— —— ——

                Systemd服务,可以实现并行启动并节约启动时间,是一个锦上添花的功能,希望这篇文章能提升您对OKMX8MQ-C开发板的使用体☆验。