Linux系统的开机自启脚本方法

news2024/11/27 20:34:12

centOS中

方法1:/etc/rc.local

/etc/rc.local是rc.d/rc.local的软链

1、在自己需要启动的文件目录中编写一个shell脚本文件auto_run_script.sh(文件名称你们随意)。我的这个timeTest文件是timeTest.cpp编译过来的。主要是过几秒打印一下时间。最好先验证一下你自己写的这个脚本能不能运行。

#!/bin/bash

cd /root/

./timeTest >> /root/output.txt

sleep 3

date >> /root/output.txt

随后需要给这个文件可执行的权限

chmod 777 auto_run_script.sh

2、在centOS7中我是看到了这个东西,但是ubanto中好像没有看到。

vim /etc/rc.local

打开这个文件之后在末尾添加(这样开机之后就会运行你自己的脚本了。其他的脚本也是一样)

/root/auto_run_script.sh

随后需要给这个文件可执行的权限

chmod 777 /etc/rc.local

3、重启

reboot

4、查看是否执行了开机自启命令

cat output.txt

在这里插入图片描述

方法2:使用 crontab

大家知道,crontab 是 Linux 下的计划任务,当时间达到我们设定的时间时,可以自动触发某些脚本的运行。

我们可以自己设置计划任务时间,然后编写对应的脚本。但是,有个特殊的任务,叫作 @reboot ,我们其实也可以直接从它的字面意义看出来,这个任务就是在系统重启之后自动运行某个脚本。

那它将运行的是什么脚本呢?我们如何去设置这个脚本呢?我们可以通过 crontab -e 来设置。

crontab -e
@reboot /home/ok/auto_run_script.sh

然后,直接重启即可。运行的效果跟上面类似。
在这里插入图片描述

方法三:使用 systemd 服务

这个我没试,大家感兴趣的话可以自己试试。

Ubuntu中

方法一:普通执行文件

1.首先创建脚本文件
如下面的start.sh,

#!/bin/sh
cd ~/test_ws/src/server/
#./server >> output.text
	
gnome-terminal -- bash -c "cd ~/test_ws/src/server/;./server; exec bash"
#sleep 3		
gnome-terminal -- bash -c "sleep 3;cd ~/test_ws/src/server/;python3 client_camera.py --shell; exec bash"

2.给脚本添加可执行权限
因为刚创建的.sh文件是不可执行的,需要添加权限才可执行,添加方法很见单,使用chmod命令即可

chmod +x start.sh
或者
chmod 777 start.sh

3.在终端中运行脚本进行测试
打开终端,进入脚本所在路径,运行

./start.sh

终端输出正常的运行结果,测试有效.

4.在新的终端运行
在之前的步骤之后,即使添加到了开机自启动,就算运行,也不能看出来是否真的在运行,甚至可能就没有在运行,也可能运行之后瞬间结束,为此,可以采用打开一个新终端加延时的方式运行,修改start.sh脚本:

其中gnome-terminal -x bash -c会打开一个新的bash终端并执行c后面的语句,语句用’; ;;’,隔开,最后的sleep 5表示延迟5秒退出,这样就可以在新的终端看到运行效果,添加这个延时是为了方便验证是否启动程序或者节点
!注意,如果是ubuntu 18.04的系统,gnome-terminal -x bash -c(这个新系统已经不用了包括,gnome-terminal -e bash -c都已经弃用了)需要改写成gnome-terminal -- bash -c

在完成了上述步骤之后,可以将脚本添加到ubuntu开机启动管理器里头,具体操作如下:

1.打开ubuntu启动管理器
在终端输入gnome-session-properties运行,会打开一个界面,这里记录着系统上层应用的启动软件:
在这里插入图片描述

可以根据需要点击Add将对应的启动项目加进来,启动项可以是脚本,这里以脚本为例,把上面的start.sh脚本添加到启动项里来
2.添加执行项目
点击Add按键
输入相应的信息,这里NameComment都可以自己随意设置,只是对启动项的一个说明,中间的Command才是要运行的内容,可以点击Browse…来进行选择,这里就选择刚刚的那个脚本文件(注意脚本文件一定要有可执行的权限).
在这里插入图片描述

最后点击Add就可以了,界面中就会多了一项刚刚设置的内容
在这里插入图片描述

3.重启测试
点击重启就可以测试了,会发现开机之后确实打开了一个新的终端,并运行了脚本里的程序.
由于一般设备都设置了密码,而管理器里的这些程序,是需要登录之后才可以进行的,所以,可以将设备设置为自动登录,具体的方法如下:
A. 进入系统设置==>用户设置
在这里插入图片描述

B.设置自动登录
按照如下的顺序进行设置
在这里插入图片描述

引用:
1、LINUX系统如何设置开机自动运行脚本?
2、CSDN博主「北方南方2020」的原创文章,原文链接:https://blog.csdn.net/baidu_34319491/article/details/106456571

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

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

相关文章

Dubbo中的常用组件

微服务的架构主要包括服务描述、服务发现、服务调用、服务监控、服务追踪以及服务治理这几个基本组件。 那么每个基本组件从架构和代码设计上该如何实现?组件之间又是如何串联来实现一个完整的微服务架构呢?今天我就以开源微服务框架Dubbo为例来给你具体…

机器学习实战六步法之训练模型、优化模型、部署模型(七)

要落地一个机器学习的项目,是有章可循的,通过这六个步骤,小白也能搞定机器学习。 看我闪电六连鞭!🤣 训练模型 当确定好机器学习算法之后,就可以通过训练数据集中的特征和标签,根据样本数据的…

SLAM中刚体的运动描述

简介 物体在真实世界中是运动的,SLAM中求解的机器人位姿就是求解机器人的运动。SLAM的问题就是求解世界坐标系中的静态物理点坐标以及运动的机器人点坐标集合(机器人运动点的集合构成机器人的运动轨迹)。而通常我们获取的信息是以机器人本体为…

测试真的会被ChatGPT代替一文告诉你

送走最后一车货,最后三个工人,老王吃力的关上大铁门。左手从口袋摸出一盒烟,轻轻一颠,滑落一根,右手娴熟的夹住。掏出打火机,点燃,一丝青烟腾起,萦绕在指头。 夕阳穿过玻璃&#xf…

知道这些英文文档翻译的方式吗

在工作中,大家有没有遇到领导交给你一份外语的文档,要你去观看和理解,但是我们看不太懂或者没啥时间去一点点翻译怎么办呢?我们就需要有工具来将文档翻译,它是一项非常实用和便捷的功能,它可以将文档中的文…

高级运维工程师的工作职责描述(合集)

高级运维工程师的工作职责描述1 职责: 1、参与设计、审核的Linux系统以及各应用系统的体系架构; 2、全面负责公司运维项目的系统升级、linux系统运营维护,保障公司服务器零风险; 3、负责阿里云服务器监控,搭建cacti、zabbix、nagios等监控产品&#xff0…

STM32信号量

目录 什么是信号量? 什么是二值信号量? 二值信号量相关 API 函数 1. 创建二值信号量 2. 释放二值信号量 3. 获取二值信号量 实操 实验需求 cubeMX配置​编辑 代码实现 计数型信号量 什么是计数型信号量? 计数型信号量相关 API 函…

CENTO OS上的网络安全工具(二十三)VSCODE SPARK 容器式编程环境构建

在vscode上使用maven构建spark的scala编程环境,很大程度上需要不断地从网络上下载各种依赖和插件,而且这一过程复杂而不可控。下面这段,是整个安装过程中/root目录下不断增加的内容。 [rootd7ff8f448a0d /]# cd /root [rootd7ff8f448a0d ~]#…

【 Python 全栈开发 - WEB开发篇 - 32 】MySQL高级查询

文章目录 一、LIMIT限制查询结果的数量二、使用GROUP BY进行分组查询1.GROUP BY和聚合函数一起使用2.GROUP BY和聚合函数以及HAVING一起使用 三、使用ORDER BY对查询结果排序 一、LIMIT限制查询结果的数量 开始之前,我们先准备一下数据,打开cmd&#xf…

MsSqlServer2008R2移动数据库迁移复制粘贴附加.mdf不要.ldf日志 230609记录

MsSqlServer2008R2数据库迁移复制粘贴附加.mdf 230609记录 将一个SqlServer的某个数据文件.mdf拷贝到另一个数据库当中,并启用 操作工具为 SSMS(SQL Server Management Studio) 19.1 免费下载 SQL Server Management Studio (SSMS) 19.1 .mdf文件 SQL Server 数据库中的三…

【数据结构】何为数据结构。

🚩 WRITE IN FRONT 🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2022博客之星T…

chatgpt赋能python:Python循环暂停和继续的方法

Python循环暂停和继续的方法 Python是一种高级编程语言,在编程中使用循环结构非常常见。很多情况下,我们需要在循环中暂停或者继续执行。在本文中,我们将介绍如何在Python中实现循环暂停和继续的方法。 循环暂停和继续的意义 在Python编程…

打死也要学的VUE.js(中文官方文档)

VUE.js中文官方文档 文章目录 VUE.js中文官方文档 创建一个 Vue 应用[#](https://cn.vuejs.org/guide/essentials/application.html#creating-a-vue-application)应用实例[#](https://cn.vuejs.org/guide/essentials/application.html#the-application-instance)根组件[#](http…

微信小程序抓包你会吗?不会我来教你

目录 前言 先来说小程序抓包问题 再说下小程序调试问题 解包wxapkg 调试小程序 总结: 前言 今天聊下微信小程序的抓取,其实小程序的抓取不难,主要解决抓包和如何调试小程序这两个问题。如果你运用chrome调试已经比较熟练了的话,就…

Java多线程、进程、并行、并发的理解(通俗易懂)

程序(programm) 概念:是为完成特定任务、用某种语言编写的一组指令的集合。即指一段静态的代码。 进程(process) 概念:程序的一次执行过程,或是正在运行的一个程序。 说明:进程作为资源分配的单位,系统在运行时会为每…

基于VITS-fast-fine-tuning构建多speaker语音训练

1 VITS模型介绍 VITS(Variational Inference with adversarial learning for end-to-end Text-to-Speech)是一种语音合成方法,它使用预先训练好的语音编码器 (vocoder声码器) 将文本转化为语音。 VITS 的工作流程如下: &#xff0…

【CSS按钮特效】css如何实现科技感好看按钮效果(尾附源码下载)

【写在前面】这两天还是比较痴迷于CSS特效的,甚至还想着去用CSS做动画片呢,希望后面能做到,今天主要讲的是我们页面常见的元素-按钮,很多时候按钮也需要高级化,但是很多人苦于没有途径去寻找,于是乎借这个机…

jsx底层渲染机制,函数组件的底层渲染机制

jsx底层渲染机制!! 1.第一大步创建virtualDom 首先把我们编写的JSX语法,编译为虚拟DOM对象「virtualDOM」,这一步也分为两小步 虚拟DON对象∶框架自己内部构建的一套对象体系(对象的相关成员都是React内部规定的)&a…

深入理解深度学习——注意力机制(Attention Mechanism):多头注意力(Multihead Attention)

分类目录:《深入理解深度学习》总目录 在实践中,当给定相同的查询、键和值的集合时,我们希望模型可以基于相同的注意力机制学习到不同的行为, 然后将不同的行为作为知识组合起来, 捕获序列内各种范围的依赖关系 &#…

论文解读:GBPNet:蛋白质结构的通用几何表示学习

GBPNet: Universal Geometric Representation Learning on Protein Structures DOI:https://doi.org/10.1145/3534678.3539441 Github:GBPNet/gbpnet/datamodules at main sarpaykent/GBPNet GitHub 摘要: 蛋白质3D结构的表示学习对于例如计算蛋白质设计或蛋白…