当前位置:   article > 正文

Jetson nano开机自启动程序

jetson nano开机自启动程序

前言

最近有个需求,需要在jetson nano开机自启动一个应用程序,最近看了几篇帖子,简单实现了其中一种,故此做个记录方便下次查看。此次使用的方法是systemd服务进程拉起方式,具体细节,大家自行查阅,这里只说明具体实现流程。

参考:Linux系统设置开机自动运行脚本的方法实例Linux设置进程自启动(systemd,init)Linux设置软件开机自启动的三种方式

1.介绍

这里实现一个部署在jetson nano上的yolov5算法程序的自启动功能,jetson nano每次开机后自动开启yolov5检测程序,PC端通过zmq实现远程画面显示。参考jetson nano模型部署zmq远程画面显示

2.创建开机自启动程序

2.1 创建一个bash文件

首先需要创建一个bash文件start.sh,里面的内容为你需要拉起的可执行程序,比如我需要拉起yolov5检测程序,那么我的start.sh内容如下:

#! /bin/bash
cd /home/zhlab/tensorRT_Pro-main/workspace
./pro yolo
  • 1
  • 2
  • 3

cd到指定目录,然后执行程序。大家可以执行bash start.sh检查下程序是否启动

2.2 创建一个service文件

创建一个service文件start.service,里面内容指定为你需要执行的bash文件的路径,比如我需要指定开机执行start.sh,那么我的start.service内容如下:

[Unit]
Description=Run a Custom Script at Startup
After=default.target

[Service]
ExecStart=/home/zhlab/tensorRT_Pro-main/workspace/start.sh

[Install]
WantedBy=default.target
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

大家只需要修改[Service]下的可执行bash文件的路径修改为你的路径即可,从服务的内容来看,我们最终还是会调用/home/zhlab/tensorRT_Pro-main/workspace/start.sh这个脚本

2.3 添加权限

start.sh以及start.service添加权限

sudo chmod 777 start.sh
sudo chmod 777 start.service
  • 1
  • 2

2.4 移动service文件

大家需要将创建的start.service文件移动到/etc/systemd/system下,当然你也可以直接在/etc/systemd/system创建service文件,具体移动指令如下

sudo mv start.service /etc/systemd/system
  • 1

2.5 启动服务

现在只需要启动服务然后重启即可,需要执行的指令如下:

systemctl daemon-reload
systemctl enable start.service	// 启动刚才定义的service服务
sudo reboot 	// 重启
  • 1
  • 2
  • 3

演示如下图所示,重新开机后会启动start.service服务,去执行start.sh文件,从而去执行yolov5检测程序

在这里插入图片描述

图(1) 服务启动演示

重新开机后可以使用如下指令查看服务是否开启

systemctl status start.service
  • 1

在这里插入图片描述

图(2) 服务状态查看

此时可以看到服务的状态是active(running)即激活状态,现在可以在PC端通过zmq远程显示yolov5推理的画面了,如下图所示:

在这里插入图片描述

图(3) zmq远程画面显示

2.6 停止/重启服务

停止服务指令如下

systemctl stop start.service
systemctl restart start.service
  • 1
  • 2

在这里插入图片描述

图(4) 停止服务演示

上图演示了服务停止到服务重启的过程,可以看到服务状态的转变。

2.7 取消开机自启动服务

值得注意的是systemctl stop start.service只是停止了本次服务,但是当开机时服务又会重新启动,现在需要取消服务自启动,执行指令如下:

systemctl disable start.service	// 取消自启动服务
sudo reboot	// 重启
  • 1
  • 2

演示如下图

在这里插入图片描述

图(5) 取消自启动服务演示

开机之后可以使用systemctl status start.service查看服务状态,会发现此时服务未启动,如下图所示

在这里插入图片描述

图(6) 取消自启动服务后服务的状态查看

特别注意!!!大家一定要知道自己开启了哪些服务以及对应的服务的功能,不要多次启动同一个程序

结语

关于jetson nano的开机自启动程序大家可以自行测试,具体的细节需要各位自行查阅。

感谢各位看到最后,创作不易,读后有收获的看官帮忙点个

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/51028
推荐阅读
相关标签