Jetson/RKD/树莓派/Ubuntu(x86) 设置开机自启动程序教程

 在模型部署过程中,当一个算法优化到成熟时,需要在硬件上进行相应的设置,以保证硬件能够顺利开机并自动调用算法,实现对应的功能。本文主要讲解对Jetson/RKD/树莓派等硬件的开机自启动程序进行设置。

一、编写shell脚本文件

  需要设置一个shell脚本文件,可以将需要在终端运行的命令代码提前放到这个文件里面,这里以一个py文件为列,具体shell文件(test.sh)内容如下:

# !/bin/bash
echo "Start ..."
sudo python3 xxx.py
echo "Finish!"

二、设置开机自启动systemd服务

  将test.sh脚本设置为后台运行,并保留运行该程序对应的pid号,以便后续终止该程序(kill -9 pid号)

sudo python3 xxx.py  # 如果是acanconda环境,那就需要指定python的具体路径
echo $! > /xx/xx.pid
sleep infinity   # 后台始终运行该程序

  在/etc/systemd/system/文件夹下,编写一个服务脚本(test.service),文件内容如下:

[Unit]
Description = test_service
After=network.target

[Service]
ExecStart=path/to/your/test.sh
Restart=on-failure

User=root
Group=root

[Install]
WantedBy=multi-user.target

  也可以在某一个路径下创建一个test.service脚本,将其复制到/etc/systemd/system/文件夹下,命令如下:

sudo cp xxx/test.service /etc/systemd/system/

  然后开启设置脚本的自启动服务,在终端输入命令行如下:

sudo systemctl daemon-reload  # 重新加载服务

sudo systemctl enable test.service  # 启动开启自启

sudo systemctl start test.service   # 开启服务

  如果设置的脚本需要sudo管理员权限,那么就要将第一部分中提到的test.sh文件放到/etc/init.d/文件夹中并赋予读写可执行权限。

sudo cp your/to/path/test.sh /etc/init.d/
sudo chmod 777 /etc/init.d/test.sh

!!!注意:这里的test.sh脚本文件中的内容一定要编写准确,因为开机会自动运行,这会影响桌面的正常启动和进入,不然很可能会要重新刷机。

!!!注意:这里的test.sh脚本文件中的内容一定要编写准确,因为开机会自动运行,这会影响桌面的正常启动和进入,不然很可能会要重新刷机。

  对应/etc/systemd/system/文件夹下的test.service脚本的内容需改为:

[Unit]
Description = test_service
After=network.target

[Service]
ExecStart=/etc/init.d/test.sh
Restart=on-failure

User=root
Group=root

[Install]
WantedBy=multi-user.target

三、systemd服务指令介绍

  那么如何查看上述设置自启动服务的运行情况和设置,以下命令可以帮助对服务进行设置,具体说明如下:

sudo systemctl daemon-reload  # 重新加载服务

sudo systemctl enable test.service  # 启动开启自启

sudo systemctl start test.service   # 开启服务

sudo systemctl status test.service  # 查看服务状态,如果终端显示active(running)就表示开启成功,程序在运行当中

sudo sysemctl disable test.service   # 停止服务

sudo systemctl disable test.service  # 关闭开机自启动
要实现Jetson Nano开机自启动,可以按照以下步骤进行操作: 1. 创建一个bash文件:打开终端并输入以下命令创建一个新的bash文件: ```shell nano start_yolov5.sh ``` 2. 在bash文件中添加启动命令:将需要在开机后自动启动的命令添加到bash文件中。例如,如果你想要在开机后自动启动yolov5检测程序,可以在bash文件中添加以下内容: ```shell #!/bin/bash cd <yolov5_directory> # 切换到yolov5检测程序所在的目录 python3 detect.py # 执行yolov5检测程序 ``` 3. 保存并退出文件:按下Ctrl + X,然后按Y键保存文件并退出nano编辑器。 4. 赋予bash文件执行权限:在终端中输入以下命令,为bash文件赋予执行权限: ```shell chmod +x start_yolov5.sh ``` 5. 配置开机自启动:使用以下命令将bash文件添加到开机自启动项中: ```shell sudo nano /etc/rc.local ``` 6. 在rc.local文件中添加启动命令:在`exit 0`之前,添加以下内容: ```shell /path/to/start_yolov5.sh & ``` 其中,`/path/to/start_yolov5.sh`为你的bash文件的完整路径。 7. 保存并退出文件:按下Ctrl + X,然后按Y键保存文件并退出nano编辑器。 现在,当Jetson Nano开机后,yolov5检测程序将会自动启动。请确保已正确配置yolov5检测程序和相关依赖,并替换相应的路径和命令以适应你的实际情况。引用<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Jetson nano开机自启动程序](https://blog.csdn.net/qq_40672115/article/details/128140321)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Jetson Nano 开机程序自启动](https://blog.csdn.net/qq_33728095/article/details/115980200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IRevers

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值