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

目录
  • 一、ubuntu免密开机
  • 二、程序脚本启动
  • 三、文件赋予权限
  • 四、开机启动项管理器
  • 五、需要SUDO权限的脚本开机自启动
  • 总结

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

一、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

说明:

  • 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

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

五、需要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"  

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • ubuntu开机自启动服务设置

    在ubuntu 下创建服务及自启动的方法: 1. 在 [/lib/systemd/system] 创建sandtable.service 服务, [Unit] Description=/etc/sandtable Compatibility Documentation=man:systemd-sandtable-generator(8) ConditionFileIsExecutable=/etc/sandtable After=network.target [Service] Type=for

  • ubuntu开机后使用使用终端运行应用程序的设置方法

    1.在菜单栏输入start,点击startup application进入 2. 添加开机启动程序 3.因为要用终端启动一个应用程序,所以command输入:gnome-terminal -- 程序执行命令(gnome-terminal -- roscore或者gnome-terminal -- python3 PuttyCoatingRobot.py) 4.点击保存重启电脑即可 5.查看运行效果如下图所示 总结 以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习

  • ubuntu中编写shell脚本开机自动启动(推荐)

    编写脚本是为了不用手动去开启各种服务(也是为了偷懒哈哈) 1.进入终端输入 创建一个后缀为.sh的脚本文件 touch test.sh 编辑脚本 vim test.sh test.sh编写脚本内容  2.编写test.sh脚本 #!/bin/bash ### BEGIN INIT INFO # Provides: test # Required-Start: $remote_fs $syslog # Required-Stop: $remote_fs $syslog # Default-Star

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

    目录 一.ubuntu免密开机 二.程序脚本启动 三.文件赋予权限 四.开机启动项管理器 五.需要SUDO权限的脚本开机自启动 总结 平时有用到一些机器人或者带有ubuntu系统的移动设备,比如NVIDIA TX2,NVIDIA XAVIA, JetsonNANO,秒算,工控机等等,写好了程序后,如果想要运行,开机之后还得连接键盘鼠标,显示器,等程序运行之后还需要重新拔掉键盘鼠标显示器等等,步骤繁琐是一部分,还有可能因为反应不及时发生危险,尤其对于无人机等,因此需要配置程序开机自启动. 一.ub

  • 自定义vbs脚本实现开机后延时启动指定程序的方法

    概述 系统开机时,顺带自动启动了不少驱动程序,使得电脑开机后鼠标要呆滞许久.为了加快windows的开机速度,在参考网上不少大牛的资料后,整理出使用vbs脚本实现开机后延时启动程序的方法 vbs内容示例: 复制代码 代码如下: Dim delayer Set delayer = CreateObject("WScript.Shell") WScript.sleep 8000 delayer.Run """C:\Program Files(x86)\King

  • 开机后NumLocK键自动打开的方法大全

    1:首先在BIOS中把NumLock项设为Enable,然后在BIOS中将PnP With OS项亦设为Enable即可.不过注销用户时NumLock小键盘锁是关闭的,要手工打开. 打开注册表编辑器,找到HKEY_USERS.DEFAULTControl PanelKeyboard,将它下面的InitialKeyboardIndicators的键值改为"2",退出注册表编辑器,重新启动计算机,你就会发现数字小键盘的灯不再熄灭了. 另外,仅需要对config.sys文件动点小手术即可达到

  • android 如何设置开机后屏幕亮度默认值为自动调节

    在第一次开机后,设置>显示>自动亮度调节 默认是勾选上的. 修改 alps\frameworks\base\packages\SettingsProvider\res\values\defaults.xml 内的 <bool name="def_screen_brightness_automatic_mode">false</bool> 改为 <bool name="def_screen_brightness_automatic_mo

  • VMWare中Ubuntu重启后无法上网的解决方法

    如何解决VMWare中Ubuntu重启后无法上网,具体如下 原因:没有设置静态的DNS,导致系统每次重启都会把先前设置的DNS删除. 重启后无法上网: 1.查看DNS: 2.发现之前配置的DNS不见了 解决方法: (1)重新设置DNS 命令: 添加 nameserver 220.115.187.250(本地物理主机DNS) **(2)添加静态的DNS 命令:** 添加 dns-nameserver 220.115.187.250(本地物理主机DNS) 保存就生效了,重启也没问题. (3).成功上

  • 开机后 自动出来我的文档窗口的解决方法

    本站提供了两种解决方法:1, 你Msconfig内多了启动我的文档项目. 这个好办, msconfig里去掉就可以了. 2, 估计你是中了wsctf.exe和explorer.exe病毒. 如果这样 可以手动清除 (1) 按"Ctrl+Alt+Del"调出Windows任务管理器,结束掉EXPLORER.EXE进程,其中EXPLORER.EXE进程有两个,一个是系统的,一个是病毒的,系统的所在位置是"C:\WINDOWS",病毒的所在位置是"C:\WIND

  • Ubuntu中添加应用程序快速启动器的方法

    一些应用程序(例如很多.sh程序)如果想在Ubuntu中添加到Dash home中进行快速的启动,则需要找到/usr/share/applications这个目录,其中存放的全部是dash中的启动器,将你需要的程序xxx添加其中即可.具体操作步骤为: 命令行操作内容: cd /usr/share/applications sudo gedit xxx.desktop 打开需要编辑的文本内容为: [Desktop Entry] Version=1.0 Name=xxx Exec=/home/use

  • mysql安装后.net程序运行出错的解决方法

    发现问题 最近在安装mysql后运行.net程序出错: 出错位置:C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config 出错信息:未能加载文件或程序集"MySql.ConnectorInstaller, Version=6.10.5.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d"或它的某一个依赖项.系统找不到指定的文件. 图示: 原因: 当你安装M

随机推荐