• Jetson系列设置Python脚本开机自启


    本人使用的嵌入式开发套件是Jetson TX2!

    失败经验

    在部署过程中,先是尝试了创建shell脚本文件的方法,然后尝试了创建.service服务的方法。
    上述两种方法,本人是在树莓派上都成功实现过的,但在Jetson TX2开发板上都无一而终。

    后来想明白,开机启动脚本是在用户登录之前,所以可想而知,不能成功。但我们可以对命令行进行相关的操作,也就是 ~/.bashrc 文件进行相关操作。

    编写 ~/.bashrc

    首先打开 ~/.bashrc 文件并进行编写

    sudo vi ~/.bashrc
    
    • 1

    在文件的最后一行添加想要执行的终端命令,可以是任何终端,如果不需要root权限,直接添加就可以。

    如果需要root权限的话 可使用echo输入密码:

    例如:            python  /home/nvidia/my_work/yolov3/detect.py
    root 要求的时候: echo “password” | sudo -S chmod 777 ttyUSB0
    
    • 1
    • 2

    也可以直接编辑sudoers文件,赋予普通用户执行sudo命令时不再需要输入密码,参考链接使普通用户使用sudo命令不再需要输入密码

    这样保存完成时候,发现开机并没有自启,缺少一个启动终端的命令,接下来在终端输入:gnome-session-properties

    会打开ubuntu机选项管理,点击Add选项,command中写上:gnome-terminal 其他两个随意写。上面一个是
    name,也就是自己可以给它取个名字,最后一行是相关的注释,然后点击 exit 就可以了,这样相当于开机之后开启一个终端,这个终端就可以执行 bashrc 中的程序。

    最后只需要将~/.bashrc脚本刷新一下

    source ~/.bashrc
    
    • 1

    就可以尽情的上下电,实现开机自启了。

    报错

    开机自己执行python文件的时候,会提示没有相关的包,一些自己创建的.py文件,与执行脚本在同一目录下的。
    python包的相关方法可以看这篇文章彻底搞懂python如何找包?包安装到哪了?如何更改环境变量?

    上面这个文章链接中也提供了解决方法,我使用了其中的一种。
    编辑~/.bashrc文件,在运行python脚本之前,cd到脚本所在目录。

    sudo vi ~/.bashrc
    cd /home/nvidia/my_work/yolov3
    
    • 1
    • 2

    如此,就可以解决包导入的问题了。

    其他

    1. 自动运行命令行

    你可以添加一条命令行,每次打开bash时都会自动运行,比如

    echo "Hi~"
    cd ~/Desktop
    
    • 1
    • 2
    1. alias

    alias的意思是别名、化名,用alias可以给常用的命令行起一个简短的别名,就不用每次都敲很长的命令了。将你要的alias写进.bashrc文件并保存。

    alias la='ls -a'
    alias ll='ls -l'
    alias gst='git status -sb'
    alias ga='git add'
    alias ga.='git add .'
    alias gc='git commit'
    alias gc.='git commit .'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 设置path

    如果将自己写的脚本放在~/local目录,进到local目录

    pwd
    
    • 1

    复制local的绝对路径
    在~/.bashrc里写入

    export PATH="local的绝对路径:$PATH"
    
    • 1

    保存,并执行

    source ~/.bashrc
    
    • 1

    添加环境变量后,直接输入脚本的名字就能执行该脚本了。

    PATH 的作用

    每次在 Bash 里面输入一个命令时(比如 ls、cp、demo),Bash 都会去 PATH 列表里面寻找对应的文件,如果找到了就执行。
    使用 type demo 可以看到寻找过程
    使用 which demo 可以看到寻找结果

    1. 环境变量

    在~/.bashrc里添加上面这一行,安装 node-sass 的时候就不会因为被墙而报错。

    export SASS_BINARY_SITE="https://npm.taobao.org/mirrors/node-sass"
    
    • 1
  • 相关阅读:
    Servlet执行流程&生命周期&方法介绍&体系结构、Request和Response的功能详解
    Git 行结束符:LF will be replaced by CRLF the next time Git touches it问题解决指南
    Redis哨兵机制配置实战-实测(Redis6.2.5版本)
    如何创建和发展一家Web3公司?这100个工具你应该能用上
    117.DataNoe的HOSTNAME修改
    web如何制作一个比较完整的网页
    【python】正则匹配国内手机号
    Xintell——全生命周期的模型建设+智能数据中台
    论文查重的时候一定要注意格式和内容
    Python学习----网络编程
  • 原文地址:https://blog.csdn.net/qq_51491920/article/details/126901031