• 【ubuntu】开机后ROS程序自启动


    平时有用到一些机器人或者带有ubuntu系统的移动设备,比如NVIDIA TX2,NVIDIA XAVIA, Jetson
    NANO,秒算,工控机等等,写好了程序后,如果想要运行,开机之后还得连接键盘鼠标,显示器,等程序运行之后还需要重新拔掉键盘鼠标显示器等等,步骤繁琐是一部分,还有可能因为反应不及时发生危险,尤其对于无人机等,因此需要配置程序开机自启动。

    一、ubuntu免密开机

    路径:系统设置–用户设置
    在这里插入图片描述

    二、程序脚本启动

    可以创建test.sh文件,将程序所需要运行的指令全部加入sh文件中。
    例如:

    #! /bin/bash
    gnome-terminal -- bash -c "cd /home/xxx/Desktop/CSDN/test_demo/build;mkdir helloworld" & sleep 5
    wait
    exit 0
    
    • 1
    • 2
    • 3
    • 4

    说明:

    • gnome-terminal --bash -c:会打开一个新的bash终端并执行c后面的语句。linux bash是一个命令处理器,通常运行于文本窗口中,并能执行用户直接输入的命令;Bash还能从文件中读取命令,这样的文件称为脚本。语句用’;;’,隔开,最后的sleep 5表示延迟5秒退出,这样就可以在新的终端看到运行效果,添加这个延时是为了方便验证是否启动程序或者节点
    • 如果是ubuntu 18.04以前的系统:gnome-terminal -x bash -c;ubuntu18.04以后的系统输入:gnome-terminal – bash -c
    • gnome-terminal --tab:同一终端窗口中打开一个新选项卡。而是打开一个新窗口。

    三、文件赋予权限

    chmod指令详细说明,请参考:【ubuntu】chmod命令

    chmod 777 test.sh
    
    • 1

    四、开机启动项管理器

    gnome-session-properties是ubuntu的开机启动项管理器。如果之前编写的sh文件,不需要sudo权限,即可将sh文件加入gnome-session-properties自启动管理器中即可。
    终端输入:gnome-session-properties
    在这里插入图片描述
    添加执行项目。其中command为你编写的脚本路径,name和comment可以随意配置。
    在这里插入图片描述

    五、需要SUDO权限的脚本开机自启动

    有的时候,我们的设备连接外部设备,需要打开串口,甚至是gpio口,这需要使用到权限,串口可以通过添加rules来设置为普通用户,但是之前在DJI
    Manifold产品上需要程序对GPIO口进行设置,这个时候就需要用到sudo权限了,因为在进入sudo权限需要输入密码,这就不好完成开机自启动.

    此时就需要利用shell脚本自动输入密码

    指令:echo 'password' | sudo -S "./test.sh"
    
    • 1

    后续还需要做三步操作:

    • 给文件运行权限
    sudo chmod 777 start.sh
    
    • 1
    • 设置脚本自启动
    gnome-session-properties
    
    • 1
    • 保持gnome-terminal窗口执行后不立刻关闭

    参考:https://blog.51cto.com/u_15460722/4847678

    在测试中会发现,gnome-terminal命令执行完会一闪而过,自行关闭。需要添加read命令,read命令是等待用户按下回车后使窗口关闭。

    gnome-terminal -x bash -c "echo \"OK now\"; read"  
    
    • 1
  • 相关阅读:
    sql优化
    Vue-loader--使用/教程
    EtherCAT主站SOEM -- 44 -- win-vs-soem-win10及win11系统VisualStudio-SOEM-控制电机走周期同步位置模式(CSP模式)
    ubuntu 校验 .desktop文件
    JS 获取一个对象的 key 值和 value 值
    图像相似度识别算法aHash|dHash|PHash
    第四章 重载&访问修饰符&静态&常用类 ② 代码
    使用python读写xlsx格式中的数据【xlrd、pywin32】
    LDAPWordlistHarvester:基于LDAP数据的字典生成工具
    HTML + CSS 实现矩形/圆形进度条效果 - SVG
  • 原文地址:https://blog.csdn.net/zeye5731/article/details/126142233