程序上电自启动
设备上电自启动服务和程序
使用设备依旧为AG215S
开机自启动方式有init.d和systemctl。
使用命令查询安卓版本号
1 | adb shell getprop ro.build.version.release |
init.d自启动的方法
方法限制条件
- Android设备的
init
进程支持init.d
目录。- 设备已经取得root权限(超级用户权限)。
确认init.d目录是否存在:
在Android设备上,init.d
目录通常位于 /system/etc/init.d/
。您可以通过连接到设备的ADB Shell来检查是否存在:
1 | adb shell ls /system/etc/init.d/ |
经过查询,AG215S并不存在。
目录可手动创建
1 | mkdir etc |
创建自启动脚本
在
init.d
目录下创建一个Shell脚本文件,例如start.sh
:1
2
3
4
5
6systemctl start qrtr # 开启qrtr功能
qmi_test_service_test # 测试qrtr功能
systemctl start netmgrd
systemctl start QCMAP_ConnectionManagerd
systemctl start cv2x-launcher # 开启cv2x
cv2x-config --get-v2x-status # 获取cv2x状态重启设备:
重新启动设备,您创建的脚本应该在开机时自动执行。
systemctl开启自启动服务
- 创建服务文件
创建一个以 .service
为后缀的服务单元文件。例如,假设我们创建一个名为 my_service.service
的文件。
此为服务文件的模板:
1 | [Unit] |
在上述文件中,您需要替换以下内容:
/path/to/your/command_or_script
:您希望在启动时运行的命令或脚本的路径。your_username
:服务运行的用户名。your_groupname
:服务运行的用户组名。
本人使用的内容如下:
1 | [Unit] |
重新加载 Systemd 配置:
在保存服务单元文件后,使用以下命令重新加载 Systemd 配置:
1
sudo systemctl daemon-reload
将服务文件复制到/etc/systemd/system/目录下:
1
sudo cp my_service.service /etc/systemd/system/
启用服务:
1
sudo systemctl enable my_service.service
这将在系统启动时启用该服务。
检查服务状态:
1
sudo systemctl status my_service.service
这将显示服务的当前状态和相关信息。
现在,您的服务应该已经配置为在系统启动时自动启动。请注意,此方法假设您有足够的权限来执行上述步骤。
yocto系统的自启动服务
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 涵风 Blog!