当前位置: 首页 > news >正文

Ubuntu开机自启配置(基于service:以ROS和docker为例)

Ubuntu开机自启配置(以ROS和docker为例)

  • 前言
  • 1. service介绍
    • 1.1 service命令的基本用法
    • 1.2. service命令的常用操作
    • 1.3. service命令与systemd的兼容性
  • 2. Example之开机启动ROS
    • 2.1 创建服务单元文件
      • 2.1.1 新建`.service`文件
      • 2.1.2 编写`.service`文件
    • 2.2 重新加载systemd配置
    • 2.3 启用并启动服务
  • 3 Example之开机启动Docker
  • 4 处理依赖和环境问题
  • 5处理启动顺序问题
  • 6日志和调试


前言

在Ubuntu下,有时候希望能够开机后能够自动运行某些命令,比如ROS小车等,希望能够开机自启动,而不是每次都通过ssh等连接后再运行roslaunch xxxx xxxx.launch等命令。这里基于service实现。

1. service介绍

在Ubuntu中,service是一个用于管理系统服务的命令行工具,它允许用户启动、停止、重启、查看服务状态等操作。随着Ubuntu版本的更新,systemd成为了大多数Ubuntu版本(特别是Ubuntu 15.04及以后版本)的初始化系统和服务管理器,逐渐取代了旧的SysVinit和Upstart系统。

1.1 service命令的基本用法

service命令的基本语法如下:

service [选项] 服务名 [命令]
  1. 选项:通常不需要指定,但在某些情况下可以使用选项来修改命令的行为。
  2. 服务名:要操作的服务名称,这通常对应于/etc/init.d/目录下的脚本名称(对于SysVinit和Upstart)或systemd的服务单元文件(.service)的名称。
  3. 命令:要执行的操作,如start、stop、restart、status等。

1.2. service命令的常用操作

  1. 启动服务sudo service 服务名 start
  2. 停止服务sudo service 服务名 stop
  3. 重启服务sudo service 服务名 restart
  4. 查看服务状态sudo service 服务名 status
  5. 列出所有服务:systemctl list-units --type=service

1.3. service命令与systemd的兼容性

在systemd系统中,service命令的许多操作实际上是通过调用systemd的systemctl命令来实现的。例如,当你使用sudo service 服务名 start时,systemd会查找与该服务名对应的.service文件,并使用systemctl start 服务名.service来启动服务。

2. Example之开机启动ROS

2.1 创建服务单元文件

2.1.1 新建.service文件

通过nanovim等,在/etc/systemd/system/下新建.service文件,如:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 计算机毕业设计选题推荐-零食批发商仓库管理系统-Java/Python项目实战
  • Zookeeper源码剖析-ZAB协议选举流程
  • Oracle核心进程详解并kill验证
  • js中map属性
  • vue2 前端实现pdf在线预览(无插件版)
  • “八股文”在程序员面试中的作用及其对实际工作的影响
  • Java整理14
  • C++ 沙漏图案(Hour-glass Pattern)
  • JavaScript_语法_运算符_一元运算符
  • Python面试题:结合Python技术,如何使用Alembic进行数据库迁移管理
  • Spring框架中依赖注入实现手段的选择(基于XML 或 基于注解)
  • 新装centos7虚拟机如何配置网络,NAT配置固定IP
  • Android Studio运行报错:module java.base dose not “opens java.io“ to unnamed module
  • 特斯拉财报看点:FSD拳打华为,Robotaxi 脚踢百度
  • Java类加载器实现机制详细笔记
  • 2017年终总结、随想
  • Create React App 使用
  • Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  • eclipse(luna)创建web工程
  • PV统计优化设计
  • Terraform入门 - 1. 安装Terraform
  • V4L2视频输入框架概述
  • vagrant 添加本地 box 安装 laravel homestead
  • vue2.0项目引入element-ui
  • 聊聊sentinel的DegradeSlot
  • 排序算法之--选择排序
  • 盘点那些不知名却常用的 Git 操作
  • 前嗅ForeSpider中数据浏览界面介绍
  • 容器化应用: 在阿里云搭建多节点 Openshift 集群
  • 设计模式 开闭原则
  • 使用前端开发工具包WijmoJS - 创建自定义DropDownTree控件(包含源代码)
  • 思否第一天
  • 云大使推广中的常见热门问题
  • ​LeetCode解法汇总518. 零钱兑换 II
  • # Redis 入门到精通(一)数据类型(4)
  • ###51单片机学习(2)-----如何通过C语言运用延时函数设计LED流水灯
  • (1)常见O(n^2)排序算法解析
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (vue)el-tabs选中最后一项后更新数据后无法展开
  • (八)光盘的挂载与解挂、挂载CentOS镜像、rpm安装软件详细学习笔记
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (附源码)spring boot校园拼车微信小程序 毕业设计 091617
  • (篇九)MySQL常用内置函数
  • (四)事件系统
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (一)项目实践-利用Appdesigner制作目标跟踪仿真软件
  • .NET 5种线程安全集合
  • .Net Attribute详解(上)-Attribute本质以及一个简单示例
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .net framwork4.6操作MySQL报错Character set ‘utf8mb3‘ is not supported 解决方法
  • .Net MVC4 上传大文件,并保存表单
  • .NET 药厂业务系统 CPU爆高分析
  • .NET/C# 的字符串暂存池
  • .set 数据导入matlab,设置变量导入选项 - MATLAB setvaropts - MathWorks 中国
  • /etc/motd and /etc/issue