开机自动启动控制台并运行自己编译好的c++程序
来源:互联网 发布:子域名 需要备案吗 编辑:程序博客网 时间:2024/04/28 19:07
笔记:
项目简介:在jetson tx2开发板上安装ubuntu16.04,然后用c/c++实现无人机感知与避撞。程序主要功能是:启动程序后等待地面站发送离线航点数据帧,收到后等待地面站发送开启避障指令,收到开启避障指令后,程序在一个大的循环里完成 :接收无人机遥测信息,接收雷达感知信息,控制双目摄像头感知环境,并根据各种信息完成避撞策略生成避障航点给无人机,过程中不断向地面站软件发送状态信息。
问题: 现在需要: 开机自动运行我们这个程序。
分析: 与网上普通的开机自启动问题相比 我们这个问题的特殊性有:
1.arm-linux
2.我的c++程序在终端上输出了很多参数与调试信息,开机后不能在后台运行,需要显示终端。
3.我的c++程序是开机打开串口然后等待串口输入数据,没有数据则程序一直等待,串口收到符合要求的数据后才继续运行。
解决过程: 网上的方法大都是修改/etc/rc.local文件或者在/etc/init.d里面编写shell来实现开机自启动。于是我按照网上的方法,在rc.local里exit 0之前加上了一句sudo ./home/nvidia/Desktop/obs01/build/obs (我的工程放在了桌面,build文件夹里的obs使我们make生成的可执行程序,注意这里要写可执行程序的完整目录,从/开始),重启之后没有任何反映,ps命令查看进程也没有(也有可能不会用ps命令),于是为了知道程序到底运行没有,我在我工程代码最前面加上了一句生成一个txt文件的语句,然后重启发现txt生成了,但是我在地面站发送指令,tx2也没什么反映(除了终端上的输出信息,应该还会实时显示摄像头采集的图片),然后我直接双击obs生成了txt,然后在地面站输入指令,实时显示了摄像头采集的图片。不知道什么原因。之后试了各种方法不能解决,最后试了这个 Ubuntu 开机自动启动roscore命令 自动打开终端执行脚本命令 博客的方法,成功了,特别简单。
解决方法总结: 打开终端,在终端中执行gnome-session-properties,会弹出一个“启动应用程序首选项”的菜单 点击添加
名称 注释随便输入
命令的地方输入 gnome-terminal -x ./home/nvidia/Desktop/obs01/build/obs
如果想要后台运行则换成
bash ./home/nvidia/Desktop/obs01/build/obs延伸:
这样就可以开机自动在终端上运行你的程序了。
如果你还想在你的c++程序中控制系统操作,比如控制重新启动运行程序,或者控制重启和关机。可以这样操作:
system("gnome-terminal -x ./home/nvidia/Desktop/obs01/build/obs");//重新打开一个终端重新运行此程序
system("shutdown");//关机
system("reboot"); //重启
希望能帮到大家!
- 开机自动启动控制台并运行自己编译好的c++程序
- 让控制台程序后台运行并开机启动的简单方法
- 让控制台程序后台运行并开机启动的简单方法
- 让控制台程序后台运行并开机启动的简单方法
- 让自己的程序开机自动运行
- 在tiny6410开发板上运行自己的qt4.7程序,并设置为开机启动
- 如何让android开机后自动运行自己的程序
- Qt Windows下开机自动启动自己的程序
- 开机自动启动自己编写的QT程序
- 如何让自己的程序在开机时自动启动
- 开机启动时自动运行程序
- 网页程序开机启动并自动全屏
- 朋友的一个问题:Linux开机如何自动运行自己编写好的shell脚本
- S60 3.0上的程序安装后启动运行和程序开机自动运行
- S60 3.0上的程序安装后启动运行和程序开机自动运行
- 在自己的java代码中编译并运行程序
- Linux开机如何自动运行自己编写好的shell脚本
- winform(c#) 开机自动启动程序
- 1003. Emergency (25)
- Nginx安装的前期准备工作
- C语言操作符总结
- Java
- 校招季总结
- 开机自动启动控制台并运行自己编译好的c++程序
- 【P2822】组合数问题 2016NOIP提高组 D2T1
- 猴子选大王
- thinkPHP三元运算符的用法及多种情况下switch的用法
- 自己制作的MyBatis Generator 代码军刀,文后有下载链接
- 【NOIP2012】疫情控制
- 微信开发工具 最新版本 1.01.171018有BUG,建议大家暂缓升级
- 面试时关于“我们为什么要录用你?”回答技巧
- 作业 p42 -p43