当前位置:   article > 正文

Jetson xavier NX等Jetson系列开发板设置Python脚本的开机自启动(需要激活conda环境下)_jetson nx控制云台代码实现

jetson nx控制云台代码实现

Jetson xavier NX开机自启动python程序

失败案例:

本人使用shell脚本进行开机自启动失败:当时严格按照Jetson nano开机自启动python程序的相关操作进行设置。
新建start.sh文件后,编辑内容:

#!/bin/bash
echo '1122' | sudo chmod 777 /dev/ttyTCU0
conda activate yolov5
cd yolov5_v6.0_1/
python3 detect_and_strereo_video.py --source 0
  • 1
  • 2
  • 3
  • 4
  • 5

进行上述链接的相关操作后,重新开机(sudo reboot)后,进入了terminal界面,但是需要重新输入用户密码,同时conda activate yolov5语句报错,无法进入conda环境。
错误如图所示:
在这里插入图片描述
方案无效原因:
开机启动脚本是在用户登录之前,所以不能成功。但我们可以对命令行进行相关的操作,即对~/.bashrc 文件进行相关操作。

解决方案:

参考博客:Jetson系列设置Python脚本开机自启
(一)sudo命令时需要输入密码解决方案
参考博客:Linux 中使普通用户使用Sudo不需要输入密码
运行自动脚本,您可能需要配置 sudoers 文件并允许某些用户运行 sudo 命令而不要求输入密码。

我们要将用户添加到 sudoers文件,sudoers 文件包含确定用户和组的 sudo 权限的信息。

向下滚动到文件的末尾并添加以下行,该行允许用户 “liuyang” 使用 sudo 运行任何命令而无需开始询问密码:

sudo vi /etc/sudoers	
liuyang ALL=(ALL) NOPASSWD:ALL
  • 1
  • 2

如果要允许用户仅运行特定命令而不输入密码,请在 NOPASSWD 关键字后指定命令。

例如,要仅允许使用 mkdir 和 mv 命令:

在/etc/sudoers文件

nvidia ALL=(ALL) NOPASSWD:/bin/mkdir,/bin/mv
  • 1

(二)编写 ~/.bashrc
首先打开 ~/.bashrc 文件并进行编写:

sudo vi ~/.bashrc
  • 1

在文件的最后一行添加想要执行的终端命令,可以是任何终端,如果不需要root权限,直接添加就可以。如果需要root权限的话 可使用echo输入密码:

echo “password” | sudo -S chmod 777 ttyUSB0
  • 1

也可以直接编辑sudoers文件(如步骤1所示),赋予普通用户执行sudo命令时不再需要输入密码。
例如博主本人需要(1)给NX版的串口赋值使能权限,(2)激活某conda环境,(3)同时进入某文件夹,(4)并启动脚本。可在~/.bashrc文件的最后加入:

echo '1122' | sudo chmod 777 /dev/ttyTCU0
conda activate yolov5
cd yolov5_v6.0_1/
python3 detect_and_strereo_video.py --source 0
  • 1
  • 2
  • 3
  • 4

(三)配置开机自启相关设置
~/.bashrc保存完成时候,发现开机并没有自启,缺少一个启动终端的命令,接下来在终端输入:

gnome-session-properties
  • 1

会打开ubuntu机选项管理,点击Add选项,command中写上:gnome-terminal 其他两个随意写。这样相当于开机之后开启一个终端,这个终端就可以执行 bashrc 中的程序。
(四)最后需要将~/.bashrc脚本刷新一下:

source ~/.bashrc
  • 1

注意:设置全部完成后,即可实现python脚本开机自启动。中止程序ctrl+c后,默认进入~/.bashrc设置的路径和conda环境中。再次开启ternimal时,依然自启动python程序。想取消python脚本的开机自启动,进入:.bashrc中注释掉相关命令即可。

感谢:
Jetson nano开机自启动python程序
Jetson系列设置Python脚本开机自启
Linux 中使普通用户使用Sudo不需要输入密码

python开机自启动后,远程中止程序如何是实现。

  1. NX板通过wifi模块与电脑热点链接;
  2. 电脑端打开cmd,通过ssh连接NX板,例如;
ssh liuyang@192.168.137.225
  • 1
  1. 查看正在运行的python进程,输入命令:
ps -ef | grep python
  • 1

在这里插入图片描述
可以看到:python3 detect_and_strereo_video.py --source 0这条指令的程序的PID号为11567,输入命令中止程序:

kill -9 11567
  • 1

正在运行的程序便可被中止:
在这里插入图片描述

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

闽ICP备14008679号