在Ubuntu 20.04中设置开机自启动脚本

这里写目录标题

    • 1. 在Ubuntu 20.04中设置开机自启动脚本
    • 2. 取消上面的命令

1. 在Ubuntu 20.04中设置开机自启动脚本

在Ubuntu 20.04中设置开机自启动脚本,您可以使用systemd服务来实现。下面是如何将您的脚本设置为开机自启动的步骤:

  1. 创建systemd服务文件

首先,您需要为您的脚本创建一个systemd服务文件。您可以在/etc/systemd/system/目录下创建一个新的服务文件,例如orbbec-ros-install.service

打开终端并输入以下命令来创建和编辑服务文件:

sudo nano /etc/systemd/system/orbbec-ros-install.service

然后,在打开的文件中输入以下内容:

[Unit]
Description=Orbbec ROS SDK install script
After=network.target[Service]
Type=oneshot
ExecStart=/bin/bash -c "cd ~/orbbec_ws/src/orbbec-ros-sdk/script && sudo bash install.sh"[Install]
WantedBy=default.target

注意:这里我们使用了Type=oneshot,因为您的脚本看起来是一个一次性任务,而不是一个持续运行的服务。如果您需要持续运行的服务,可能需要更改此设置。

  1. 重新加载systemd并启用服务

保存并关闭文件后,您需要告诉systemd关于这个新的服务文件:

sudo systemctl daemon-reload

然后,启用该服务以使其在启动时自动运行:

sudo systemctl enable orbbec-ros-install.service
  1. 注意
  • 使用sudo在systemd服务中通常是不推荐的,因为它可能导致权限和安全性问题。如果可能的话,尝试修改您的install.sh脚本,使其不需要sudo权限来运行。例如,您可以确保所有必要的文件和目录都有正确的权限。
  • ExecStart中,我们使用了/bin/bash -c来执行命令。这是为了确保我们首先cd到正确的目录,然后再执行脚本。但请注意,这仍然不是最佳实践,因为cd命令只影响当前shell的上下文,而不会影响后续命令。更好的做法是将完整的路径用于install.sh,并确保它具有正确的执行权限。

最后,重新启动您的计算机,您的脚本应该会自动运行。您可以使用以下命令检查服务的状态:

sudo systemctl status orbbec-ros-install.service

2. 取消上面的命令

要取消之前设置的开机自启动脚本,您可以按照以下步骤操作:

  1. 禁用并停止服务

首先,您需要禁用并停止之前设置的systemd服务。使用以下命令来禁用并停止服务:

sudo systemctl stop orbbec-ros-install.service
sudo systemctl disable orbbec-ros-install.service

stop命令会立即停止正在运行的服务(如果它正在运行的话),而disable命令会确保服务在下次系统启动时不会自动启动。

  1. 删除服务文件

接下来,您可以删除之前创建的systemd服务文件。使用以下命令:

sudo rm /etc/systemd/system/orbbec-ros-install.service

这将从系统中删除服务文件,从而完全移除开机自启动的配置。

  1. 重新加载systemd

为了确保systemd重新加载其配置并识别到服务文件已被删除,您可以再次运行以下命令:

sudo systemctl daemon-reload

这样,当您下次重启计算机时,之前设置的开机自启动脚本就不会再运行了。

请注意,取消开机自启动只是停止脚本在系统启动时自动执行。如果脚本之前已经被执行过并对系统做了某些更改,那么这些更改仍然会保留在系统中。如果需要撤销这些更改,您可能需要手动执行一些反向操作来恢复系统的状态。

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

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

相关文章

vulhub中Weblogic < 10.3.6 ‘wls-wsat‘ XMLDecoder 反序列化漏洞(CVE-2017-10271)复现

Weblogic的WLS Security组件对外提供webservice服务,其中使用了XMLDecoder来解析用户传入的XML数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。 访问http://your-ip:7001/即可看到一个404页面,说明weblogic已成功启动 …

Kubernetes 安全秘籍:5 个你必须知道的知识点

Kubernetes 安全和身份验证是确保集群和应用安全的关键。今天将深入探讨 Service Account、身份验证和RBAC的关键概念和实践,帮助您构建安全可靠的应用。今天本文将着重于安全相关的内容,并提供更详细的示例和配置说明,帮助兄弟们更深入地理解…

Vue的table组件合并行方法

/*** param {Array} data - 原始数据集合* param {string} addParamer - 这个是自定义的参数,向每个对象中添加一个参数 按照这个参数的个数进行合并* param {} args - 剩余参数 这个是合并规则 ,比如按照时间合并 那就传入对象中的时间参数date&#xf…

String StringBuffer StringBuilder StringJoiner区别

String、StringBuffer、StringBuilder和StringJoiner在Java中都是处理字符串的工具,但它们各自有不同的特点和适用场景。 String: 是不可变的字符序列,一旦创建就不能更改其内容。每次对String进行修改时,实际上会生成一个新的String对象。这…

机器人期刊:Science Robotics and IEEE Transactions

文章目录 1. Science Robotics (出版商 AAAS)2. IEEE Transactions on RoboticsReference1. Science Robotics (出版商 AAAS) https://www.science.org/journal/scirobotics 2. IEEE Transactions on Robotics

10kV/35kV并网分布式光伏系统-实现错峰有序用电

根据国家电网 Q/GDW1480-2015 《分布式电源接入电网技术规定》:分布式电源并网电压等级可根据各 并网点装机容量进行初步选择,推荐如下: • 8kW 及以下可接入 220V ; • 8kW~400kW 可接入 380V ; • 400kW~60…

Solidity Uniswap V2 Pair中交换Token

交换意味着使用一定数量的TokenA来换取Tokenb。但我们需要一些额外的辅助服务: 1.提供实际汇率。 2.保证所有的交易都是在正确的汇率下进行的。 GitHub - XuHugo/solidityproject: DApp go go go !!! 我们在研究流动性供应时学到了一些关于 D…

【Appium问题】每次启动appium都会安装一次uiautomator

问题 每次启动appium,都需要安装一次uiautomator2比较麻烦 解决 在配置文件capabilities 中增加参数skipServerInstallationTrue

【C++专栏】C++入门 | 函数重载、引用、内联函数

博客主页:Duck Bro 博客主页系列专栏:C专栏关注博主,后期持续更新系列文章如果有错误感谢请大家批评指出,及时修改感谢大家点赞👍收藏⭐评论✍ C入门 | 函数重载、引用、内联函数 文章编号:C入门 / 02 文…

mongodb的备份与恢复

查询语句 show dbs use leshusanguo show tables db.user.find() db.user.find({},{uid:1,nickname:1,max_level:1}) db.user.find({max_level:1},{uid:1,nickname:1,max_level:1}) db.user.count() db.user.find({max_level:1,uid:672064,},{uid:1,nickname:1,max_level:1}) …

Docker的奇幻漂流

航海日志:Docker的奇幻漂流 欢迎各位探险家们,今天我们将启航进入一个由容器构成的神秘海域——Docker。在这个由代码构建的奇妙世界里,我们将学习如何驾驭这些名为“容器”的神奇船只。准备好了吗?让我们扬帆起航,探…

ORACLE RAC反应卡顿时enq: SV - contention和latch: row cache objects的分析

某客户数据库系统使用ORACLE RAC 11G版本,两个节点。在上午8点钟之后,业务开始大量进行时,出现严重的卡顿问题;在工程师分析后,发现当时出现了很多异常等待数据,如典型的enq: SV - contention 、enq: TX - …

基于单片机的老人防丢系统设计

目 录 摘 要 I Abstract II 引 言 3 1 系统总体架构 6 1.1方案设计与选择 6 1.2 系统架构设计 6 1.3 系统器件选择 7 2 系统硬件设计 9 2.1 单片机外围电路设计 9 2.2 LCD1602液晶显示电路设计 12 2.3 短信模块电路设计 14 2.4 GPS模块电路设计 14 2.5 电源与按键控制电路设计…

用 reduce 实现 map 的功能

Array.prototype.map function (callback) {const array this;return array.reduce((acc, cur, index) > {acc.push(callback(cur, index, array));return acc;}, []); }; 测试: var m [1, 2, 3, 4, 5].map(function (v, i, arr) {return v v; }); console…

精读《深度学习 - 函数式之美》

1 引言 函数式语言在深度学习领域应用很广泛,因为函数式与深度学习模型的契合度很高,The Beauty of Functional Languages in Deep Learning — Clojure and Haskell 就很好的诠释了这个道理。 通过这篇文章可以加深我们对深度学习与函数式编程的理解…

使用Python合并PDF文件并添加自定义目录及页脚

如何用Python合并PDF文件并添加自定义目录及页脚 步骤一:准备环境步骤二:合并PDF文件步骤三:处理特定文件步骤四:合并并添加目录与页脚步骤五:保存最终文档结语完整代码 在处理文档时,我们经常遇到需要合并…

Mybaties-Plus saveBatch()、自定义批量插入、多线程批量插入性能测试和对比

一.背景 最近在做一个项目的时候,由于涉及到需要将一个系统的基础数据全量同步到另外一个系统中去,结果一看,基础数据有十几万条,作为小白的我,使用单元测试,写了一段代码,直接采用了MP(Mybati…

element---tree树形结构(返回的数据与官方的不一样)

项目中要用到属性结构数据&#xff0c;后端返回的数据不是官方默认的数据结构&#xff1a; <el-tree:data"treeData":filter-node-method"filterNode":props"defaultProps"node-click"handleNodeClick"></el-tree>这是文档…

SpringCloudGateway全局过滤器

文章目录 全局过滤器的作用自定义全局过滤器过滤器执行的顺序 上一篇 Gateway理论与实践 介绍的过滤器&#xff0c;网关提供了31种&#xff0c;但每一种过滤器的作用都是固定的。如果我们希望拦截请求&#xff0c;做自己的业务逻辑则没办法实现。 全局过滤器的作用 全局过滤器的…

怎样添加、移除、移动、复制、创建和查找节点?

1&#xff09;创建新节点 createDocumentFragment() //创建一个 DOM 片段createElement() //创建一个具体的元素createTextNode() //创建一个文本节点 2&#xff09;添加、移除、替换、插入 appendChild() //添加removeChild() //移除replaceChild() //替换insertBefore() /…