ubuntu20.04中设置包含ros节点的文件自启动

若文件里包含了ros话题的发布和接收,那么设置自启动时,应该首先将roscore设置为自启动。
首先确保roscore有一个systemd服务文件。如果还没有,需要在/etc/systemd/system/下创建一个。例如,一个基本的roscore.service文件可能如下所示:

[Unit]  
Description=ROS Master Node  
After=network.target  [Service]  
Type=simple  
User=your_username  # 使用你的用户名  
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/ros/melodic/bin  # 根据需要修改  
Environment=LD_LIBRARY_PATH=/opt/ros/melodic/lib:/usr/lib  # 根据需要修改  
ExecStart=/bin/bash -c "source /opt/ros/melodic/setup.bash && roscore"  
Restart=on-failure  [Install]  
WantedBy=multi-user.target

上面文件中的 PATH 路径查看方式:打开一个终端并输入echo $PATH
LD_LIBRARY_PATH:输入echo $LD_LIBRARY_PATH来查看LD_LIBRARY_PATH
上面文件中的melodic要替换成自己的ros版本号。

我的roscore.service文件为:

[Unit]  
Description=ROS Master Node  
After=network.target  [Service]  
Type=simple  
User=ubuntu   
Environment=PATH=/opt/ros/noetic/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
Environment=LD_LIBRARY_PATH=/opt/ros/noetic/lib 
ExecStart=/bin/bash -c "source /opt/ros/noetic/setup.bash && roscore"  
Restart=on-failure  [Install]  
WantedBy=multi-user.target

然后依次运行:

sudo systemctl daemon-reload
sudo systemctl start roscore.service
sudo systemctl status roscore.service

在这里插入图片描述二、设置包含ros节点的文件自启动
包含ros节点的文件为terminal2car_receive.py

[Unit]  
Description=Terminal to Car Receiver Service  
After=network.target roscore.service  
Requires=roscore.service  [Service]  
Type=simple  
ExecStart=/path/to/your/script_or_command_to_start_terminal2car_receive  
Restart=on-failure  [Install]  
WantedBy=multi-user.target

上述文件中的/path/to/your/script_or_command_to_start_terminal2car_receive 要替换成运行terminal2car_receive.py时的完整路径。

terminal2car_receive.py的自启动服务文件名称为:terminal2car_receive.service,内容为:

[Unit]  
Description=Terminal to Car Receiver Service  
After=network.target roscore.service  
Requires=roscore.service  [Service]  
Type=simple  
ExecStart=/usr/bin/env python3 /home/ubuntu/ccy/glove_car_bt/ros_udp_udp-main/src/udp_udp/scripts/terminal2car_receive.py  
Restart=on-failure  [Install]  
WantedBy=multi-user.target

依次运行:

sudo systemctl daemon-reload
sudo systemctl start terminal2car_receive.service
sudo systemctl status terminal2car_receive.service

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/849843.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安徽代理记账公司的专业服务和创新理念

在当今竞争激烈的市场环境中,为了提升企业的运营效率,许多企业开始寻找专业的代理记账公司进行财务管理和记账,本文将介绍一家名为安徽代理记账公司的专业服务和创新理念。 安徽代理记账公司是一家专注于为企业提供全方位会计服务的公司&…

Java异步处理:不使用线程池实现异步任务

在现代应用程序中,异步处理是一项重要的技术,它允许程序在执行耗时操作时不会阻塞主线程。尽管线程池是管理和调度线程的常用工具,但有时我们可能需要其他方法来实现异步处理。本文将介绍在Java中如何不使用线程池来处理异步任务,并提供详细的代码示例和解释。 一、什么是…

SwiftUI中Mask修饰符的理解与使用

Mask是一种用于控制图形元素可见性的图形技术&#xff0c;使用给定视图的alpha通道掩码该视图。在SwiftUI中&#xff0c;它类似于创建一个只显示视图的特定部分的模板。 Mask修饰符的定义&#xff1a; func mask<Mask>(alignment: Alignment .center,ViewBuilder _ ma…

大屏可视化建设方案(word)

1.系统概述 1.1.需求分析 1.2.重难点分析 1.3.重难点解决措施 2.系统架构设计 2.1.系统架构图 2.2.关键技术 2.3.接口及要求 3.系统功能设计 3.1.功能清单列表 3.2.数据源管理 3.3.数据集管理 3.4.视图管理 3.5.仪表盘管理 3.6.移动端设计 3.1.系统权限设计 3.…

9.1 Go 接口的定义

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

算法训练营day03--203.移除链表元素+707.设计链表+206.反转链表

一、203.移除链表元素 题目链接&#xff1a;https://leetcode.cn/problems/remove-linked-list-elements/ 文章讲解&#xff1a;https://programmercarl.com/0203.%E7%A7%BB%E9%99%A4%E9%93%BE%E8%A1%A8%E5%85%83%E7%B4%A0.html 视频讲解&#xff1a;https://www.bilibili.com…

如何使用Java进行安全的网络通信

在当今日益数字化的世界中&#xff0c;网络通信的安全性成为了至关重要的议题。Java作为一种广泛使用的编程语言&#xff0c;提供了多种工具和库来实现安全的网络通信。下面&#xff0c;我将从技术难点、面试官关注点、回答吸引力和代码举例四个方面&#xff0c;详细阐述如何使…

Python报错:IndentationError: unexpected indent问题的解决办法及原因

解决Python报错&#xff1a;IndentationError: unexpected indent问题的解决办法及原因 Python是一种注重可读性的编程语言&#xff0c;它使用缩进来定义代码块。如果你遇到了IndentationError: unexpected indent的错误&#xff0c;这意味着Python解释器在代码中遇到了意外的缩…

腾讯元宝APP上线:国内大模型产品的新篇章

近日&#xff0c;腾讯元宝APP的正式上线标志着国内大模型产品领域又迎来了一位强有力的竞争者。随着人工智能技术的飞速发展&#xff0c;我们见证了越来越多的“全能”大模型AIGC产品涌现&#xff0c;它们以其卓越的性能和广泛的应用场景&#xff0c;逐渐渗透到我们生活的各个角…

阿里云(域名解析) certbot 证书配置

1、安装 certbot ubuntu 系统&#xff1a; sudo apt install certbot 2、申请certbot 域名证书&#xff0c;如申请二级域名aa.example.com 的ssl证书&#xff0c;同时需要让 bb.aa.example.com 也可以使用此证书 1、命令&#xff1a;sudo certbot certonly -d “域名” -d “…

使用亮数据代理IP爬取PubMed文章链接和邮箱地址

&#x1f482; 个人网站:【 摸鱼游戏】【神级代码资源网站】【工具大全】&#x1f91f; 一站式轻松构建小程序、Web网站、移动应用&#xff1a;&#x1f449;注册地址&#x1f91f; 基于Web端打造的&#xff1a;&#x1f449;轻量化工具创作平台&#x1f485; 想寻找共同学习交…

如何进行单元测试以及使用过的测试框架

在进行软件开发的过程中&#xff0c;单元测试是一个至关重要的环节&#xff0c;它确保代码的各个部分能够按照预期工作&#xff0c;从而提高软件的整体质量。下面我将从技术难点、面试官关注点、回答吸引力和代码举例四个方面&#xff0c;详细描述如何进行单元测试以及我所使用…

报表引擎调研分析

一、引言 随着业务的持续扩展&#xff0c;高效的数据处理和多样化展示成为项目的关键需求。本项目采用Spring Cloud与Vue2技术栈&#xff0c;这对所选报表工具的兼容性、灵活性和性能提出了特定要求。综合评估旨在通过对比分析市场上主流报表工具&#xff0c;包括UReport2、Fi…

排查互联网敏感信息,对信息泄露说“不”

前言 01 近几年&#xff0c;随着我国对网络安全的重视&#xff0c;贴近实战的攻防演练活动越发丰富&#xff0c;各单位的网络安全建设也逐步从“事后补救”升级为“事前防控”。在演练中&#xff0c;进攻方会在指定时间内对防守方发动网络攻击&#xff0c;检测出防守方存在的…

一些计算机网络面试题

TCP建立连接和关闭连接的流程&#xff1f;每个流程的环节&#xff1f; TCP是在传输层的协议&#xff0c;建立的是可靠传输 TCP在传输数据前建立连接是采用三次握手&#xff0c;关闭连接是四次挥手 三次握手&#xff1a;因为目前网络通讯是全双工的&#xff0c;那我假设浏览器…

04 架构核心技术之分布式消息队列

本课时的主题是分布式消息队列&#xff0c;分布式消息队列的知识结构如下图。 本课时主要介绍以下内容。 同步架构和异步架构的区别。异步架构的主要组成部分&#xff1a;消息生产者、消息消费者、分布式消息队列。异步架构的两种主要模型&#xff1a;点对点模型和发布订阅模型…

【讯为Linux驱动开发】5.并发与竞争

并发&#xff1a;一个CPU在一个时间片只能执行一个任务&#xff0c;切换速度很快。 并行&#xff1a;双核CPU&#xff0c;真正的同时执行两个任务 并行就是并发的理想情况&#xff0c;统称并发。 【问】Linux在什么情况下产生并发&#xff1f; 1.中断中修改公共资源 2.抢占…

【静夜思】小时候的回忆

为什么大家都会对自己童年时期的评价很高&#xff1f;甚至是一些模糊都快到想不起来的记忆&#xff1f; 博主是00后&#xff0c;那时候小学的我非常喜欢看动画片&#xff0c;像经典的喜羊羊、熊出没、胡图图等等&#xff0c;太多了。等上了高中后&#xff0c;博主也成为了一名…

全光网络与传统网络架构的对比分析

随着信息技术的飞速发展&#xff0c;网络已经成为我们日常生活中不可或缺的一部分。在这个信息爆炸的时代&#xff0c;全光网络和传统网络架构作为两种主流的网络技术&#xff0c;各有其特点和适用范围。本文将对这两种网络架构进行详细的对比分析&#xff0c;帮助读者更好地了…

机械培训元宇宙 - 开启技术技能学习的全新维度

在工业和制造业日益追求高效、精准的今天&#xff0c;专业技能的培训显得尤为重要。"机械培训元宇宙"概念的提出&#xff0c;旨在利用虚拟现实&#xff08;VR&#xff09;、增强现实&#xff08;AR&#xff09;以及数字孪生等前沿技术&#xff0c;为机械操作、维修、…