ubuntu开机后ROS程序自启动问题


Posted in Servers onDecember 24, 2022

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

一、ubuntu免密开机

路径:系统设置–用户设置

ubuntu开机后ROS程序自启动问题

二、程序脚本启动

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

例如:

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

说明:

  • 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

四、开机启动项管理器

gnome-session-properties是ubuntu的开机启动项管理器。如果之前编写的sh文件,不需要sudo权限,即可将sh文件加入gnome-session-properties自启动管理器中即可。

终端输入:gnome-session-properties

ubuntu开机后ROS程序自启动问题

添加执行项目。其中command为你编写的脚本路径,name和comment可以随意配置。

ubuntu开机后ROS程序自启动问题

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

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

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

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

后续还需要做三步操作:

给文件运行权限

sudo chmod 777 start.sh

设置脚本自启动

gnome-session-properties

保持gnome-terminal窗口执行后不立刻关闭

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

gnome-terminal -x bash -c "echo \"OK now\"; read"

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Servers 相关文章推荐
nginx优化的六点方法
Mar 31 Servers
阿里云Nginx配置https实现域名访问项目(图文教程)
Mar 31 Servers
JVM上高性能数据格式库包Apache Arrow入门和架构详解(Gkatziouras)
May 26 Servers
解决使用了nginx获取IP地址都是127.0.0.1 的问题
Sep 25 Servers
Windows Server 2019 域控制器安装图文教程
Apr 28 Servers
配置nginx负载均衡
May 06 Servers
利用nginx搭建RTMP视频点播、直播、HLS服务器
May 25 Servers
CentOS7安装MySQL8的超级详细教程(无坑!)
Jun 10 Servers
Ubuntu安装Mysql+启用远程连接的完整过程
Jun 21 Servers
vscode内网访问服务器的方法
Jun 28 Servers
Zabbix对Kafka topic积压数据监控的解决方案
Jul 07 Servers
Nginx文件已经存在全局反向代理问题排查记录
Jul 15 Servers
ubuntu端向日葵键盘输入卡顿问题及解决
Dec 24 #Servers
码云(gitee)通过git自动同步到阿里云服务器
Dec 24 #Servers
Valheim服务器 Mod修改安装教程 【ValheimPlus】
Dec 24 #Servers
keepalived + nginx 实现高可用方案
Dec 24 #Servers
ubuntu20.04虚拟机无法上网的问题及解决
Dec 24 #Servers
ubuntu如何搭建vsftpd服务器
Dec 24 #Servers
CentOS7设置ssh服务以及端口修改方式
Dec 24 #Servers
You might like
PHP:风雨欲来 路在何方?
2006/10/09 PHP
用php将任何格式视频转为flv的代码
2009/09/03 PHP
php 数组二分法查找函数代码
2010/02/16 PHP
PHP MPDF中文乱码的解决方式
2015/12/08 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
PHP如何将图片文件上传到另外一台服务器上
2019/08/26 PHP
js prototype截取字符串函数
2010/04/01 Javascript
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
2010/04/18 Javascript
JavaScript判断textarea值是否为空并给出相应提示
2014/09/04 Javascript
jQuery EasyUi实战教程之布局篇
2016/01/26 Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
2016/07/07 Javascript
深入浅出 jQuery中的事件机制
2016/08/23 Javascript
浅谈jquery高级方法描述与应用
2016/10/04 Javascript
JavaScript中transform实现数字翻页效果
2017/03/08 Javascript
Angular.Js中ng-include指令的使用与实现
2017/05/07 Javascript
JS实现遍历不规则多维数组的方法
2018/03/21 Javascript
python 剪切移动文件的实现代码
2018/08/02 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
Python 寻找局部最高点的实现
2019/12/05 Python
Python数据存储之 h5py详解
2019/12/26 Python
pytorch获取模型某一层参数名及参数值方式
2019/12/30 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
2020/02/11 Python
Pycharm2020.1安装无法启动问题即设置中文插件的方法
2020/08/07 Python
轻松掌握CSS3中的字体大小单位rem的使用方法
2016/05/24 HTML / CSS
全球领先美式家具品牌:Ashley爱室丽家居
2017/08/07 全球购物
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
Joseph官网:英国小众奢侈品牌
2019/05/17 全球购物
英语专业毕业生自荐信
2013/10/28 职场文书
简历的自我评价范文
2014/02/04 职场文书
幸福中国演讲稿
2014/09/12 职场文书
转让协议书
2015/01/27 职场文书
趵突泉导游词
2015/02/03 职场文书
小升初自荐信范文
2015/03/05 职场文书
反邪教警示教育活动总结
2015/05/09 职场文书
中小学教师继续教育心得体会
2016/01/19 职场文书
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技