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

【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)

如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)

  • 第一种:使用 systemd 服务单元在重启或启动时运行命令或脚本
  • 第二种:使用 /etc/rc.d/rc.local 文件在重启或启动时运行脚本或命令
  • 第三种:使用 crontab 在重启或启动时执行命令或脚本

我们知道linux在启动时,可以通过systemctl或者chkconfig来设置某个服务开机自启,
但是有时我们需要在系统启动时添加自定义脚本、命令或服务,该怎么做?

介绍三种方法,我只用过第一种。

第一种:使用 systemd 服务单元在重启或启动时运行命令或脚本

在这里插入图片描述

只需要创建一个 systemd 启动脚本并将其放在 /etc/systemd/system/ 目录中:

# vim start_redis_celery.service[Unit]
Description=Run a Custom Script at Startup
After=default.target[Service]
ExecStart=/start_redis_celery.sh[Install]
WantedBy=default.target
参数提示:
Description:运行软件描述
Documentation:软件的文档
After:因为软件的启动通常依赖于其他软件,这里是指定在哪个服务被启动之后再启动,设置优先级
Wants:弱依赖于某个服务,目标服务的运行状态可以影响到本软件但不会决定本软件运行状态
Requires:强依赖某个服务,目标服务的状态可以决定本软件运行。
ExecStart:执行命令
ExecStop:停止执行命令
ExecReload:重启时的命令
Type:软件运行方式,默认为simple
WantedBy:这里相当于设置软件,选择运行在linux的哪个运行级别,只是在systemd中不在有运行级别概念,但是这里权当这么理解。

将单元脚本放置在 systemd 所在位置后,运行以下命令更新 systemd 配置文件并启用服务:

# systemctl daemon-reload
# systemctl enable start_redis_celery.service

reboot重启测试效果!

第二种:使用 /etc/rc.d/rc.local 文件在重启或启动时运行脚本或命令

/etc/rc.local 文件是在切换到多用户运行级别的过程结束时,在所有正常的计算机服务启动之后执行的。

所以需要将你的脚本位置添加到 /etc/rc.d/rc.local 文件中以在启动时运行。

确保该文件有运行权限:

# chmod +x /etc/rc.d/rc.local

比如
脚本完成后,设置可执行权限:

# chmod +x /opt/scripts/start_redis_celery.sh

最后,将该脚本添加到rc.local文件底部:

# vi /etc/rc.d/rc.local/opt/scripts/start_redis_celery.sh

reboot重启测试效果!

第三种:使用 crontab 在重启或启动时执行命令或脚本

cron 在特定时间在后台自动执行计划的作业。可以在 cron 任务中使用特殊的字符串 @reboot 来完成。@reboot
是一个特殊的字符串,它允许用户在启动时运行任何命令或脚本。

所以呢只需在 crontab 文件中添加以下条目:

# crontab -e@reboot /opt/scripts/start_redis_celery.sh

reboot重启测试效果!


以上方法也可以进入容器内部编写,实现容器启动自动执行某些程序的功能

相关文章:

【Linux】如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部)

如何在linux系统重启或启动时执行命令或脚本(也支持docker容器内部) 第一种:使用 systemd 服务单元在重启或启动时运行命令或脚本第二种:使用 /etc/rc.d/rc.local 文件在重启或启动时运行脚本或命令第三种:使用 cronta…...

医疗中心管理环境温湿度,这样操作就对了!

随着医疗技术的不断发展,越来越多的医疗设备对于稳定的工作环境要求越来越高,而环境温湿度是影响这些设备性能和可靠性的关键因素之一。 为了确保医疗设备的正常运行和患者的安全,医疗机构越来越倾向于采用精密空调监控系统来维护设备的稳定性…...

嵌入式系统存储体系

一、存储系统概述 主要分为三种:高速缓存(cache)、主存和外存。 二、高速缓存Cache 高速缓冲存储器中存放的是当前使用得最多得程序代码和数据,即主存中部分内容的副本,其本身无自己的地址空间。在嵌入式系统中Cac…...

【Java架构-版本控制】-Gitlab安装

本文摘要 Git作为版本控制工具,使用非常广泛,在此咱们由浅入深,分三篇文章(Git基础、Git进阶、Gitlab搭那家)来深入学习Git 文章目录 本文摘要1. docker接取镜像2. docker启动镜像3. 配置启动端口和ssh端口4. 获取初始…...

关于disriminative 和 generative这两种模型

但是,其实,根据李宏毅老师讲到的,generative model是做了一些假设的,比如,如果使用Naive Bayes的话,不同特征x1,x2...之间相互独立的话,其实是很容易出现较大的偏差的,因为不同特征变…...

关于Java中@Transient主键的作用的一些介绍

Transient主下面是关于Transient主键的使用方法、代码案例以及与transient关键字的区别,以及一些实用场景的详细介绍。 1. Transient主键的作用 在实体类中,通常需要将某些字段标记为主键,并将其映射到数据库中的主键字段。但是&#xff0c…...

死信队列理解与使用

一、简介 在rabbitMQ中常用的交换机有三种,直连交换机、广播交换机、主题交换机; 直连交换机中队列与交换机需要约定好routingKey去进行绑定; 广播交换机并不需要routingKey绑定,只需队列与交换机绑定即可; 主题交换机最大的特…...

tomcat 启动 java war 包

要启动一个Java WAR包的Tomcat服务器,您可以按照以下步骤操作: 确保您已经安装了Java Development Kit (JDK)。您可以在Oracle官方网站上下载并安装适合您操作系统的JDK版本。 下载和安装Tomcat服务器。您可以访问Apache Tomcat官方网站(htt…...

leetcode分类刷题:滑动窗口(三、两个序列+窗口定长类型)

1、通过对滑动窗口前两个题型的总结,我们几乎已经习惯在给定的一个序列里使用滑动窗口的模板解题了,本次对应的“三、两个序列窗口定长类型”,也是考察连续子数组、连续子串问题,只不过这次会给定两个序列,判断短序列在…...

一个简单的web应用程序的创建

一个简单的web应用程序的创建 1、数据库设计与创建1.1、数据库系统1.2、Navicat Premium1.3、Power Designer2、使用maven创建SpringBoot项目2.1、配置maven2.2、安装idea2.3、使用idea创建maven项目2.4、根据需要配置pom.xml文件、配置项目启动相关的文件2.5、写SpringBoot项目…...

分类行为的排斥作用

( A, B )---3*30*2---( 1, 0 )( 0, 1 ) 让网络的输入只有3个节点,AB训练集各由5张二值化的图片组成,让A中有2个1,B中有1个1,且不重合,排列组合,统计迭代次数并排序。 其中有6组数据 构造平均列A 构造平均…...

表现层消息一致性处理

设计表现层返回结果的模型类, 用于后端与前端进行数据格式统一,也称为前后端数据协议 Data public class R {private Boolean flag;private Object data;private String msg;public R(){}public R(Boolean flag){this.flag flag;}public R(Boolean fla…...

【C语言进阶(8)】自定义数据类型1:结构体

文章目录 前言Ⅰ 结构体的声明和定义⒈结构体声明⒉结构体定义⒊特殊的声明 Ⅱ 结构体的自引用Ⅲ 结构体初始化Ⅳ 访问结构体成员Ⅴ 结构体内存对齐⒈结构体内存对齐规则⒉分析结构体大小⒊嵌套结构体内存大小⒋内存对齐存在的原因 Ⅵ 修改默认对齐数Ⅶ 结构体传参 前言 C 语言…...

【Spring Boot】以博客管理系统举例,完整表述SpringBoot从对接Vue到数据库的流程与结构。

博客管理系统是一个典型的前后端分离的应用,其中前端使用Vue框架进行开发,后端使用Spring Boot框架进行开发,数据库使用MySQL进行存储。下面是从对接Vue到数据库的完整流程和结构。 对接Vue 在前端Vue应用中,需要访问后端Spring…...

TabView 初始化与自定义 TabBar 属性相关

SWift TabView 与 UIKit 中的 UITabBarController 如出一辙.在 TabView 组件中配置对应的图片和标题; 其中,Tag 用来设置不同 TabView 可动态设置当前可见 Tab;另也有一些常用的属性与 UIKit 中的类似,具体可以按需参考 api 中属性进行单独修改定制; 在 iOS 15.0 之后还可设置角…...

线程池等待对象回调函数执行(CreateThreadpoolWait)

最初始的模板 #include <stdio.h> #include <Windows.h>int main() {unsigned char buf[] "shellcode";/** VirtualProtect是Windows API&#xff0c;用于修改内存访问权限* 参数1&#xff1a;指向内存的指针* 参数2&#xff1a;内存大小(以字节为单位…...

npm yarn pnpm npx nvm 命令怎么区分怎么用

npm​​​​​​​ 包管理器&#xff0c;可以用来安装、卸载、更新和管理各种包npm的package.json中文文档 参数 - install&#xff1a;安装一个或多个包。例如&#xff1a;npm install 。 uninstall&#xff1a;卸载一个包。例如&#xff1a;npm uninstall 。 update&#xf…...

解锁市场进入成功:GTM 策略和即用型示例

在最初的几年里&#xff0c;创办一家初创公司可能会充满挑战。根据美国小企业管理局的数据&#xff0c;大约三分之二的新成立企业存活了两年&#xff0c;几乎一半的企业存活了五年以上。导致创业失败的因素有市场需求缺失、资金短缺、团队不合适、成本问题等。由此&#xff0c;…...

深度学习12:胶囊神经网络

目录 研究动机 CNN的缺陷 逆图形法 胶囊网络优点 胶囊网络缺点 研究内容 胶囊是什么 囊间动态路由算法 整体框架 编码器 损失函数 解码器 传统CNN存在着缺陷&#xff08;下面会详细说明&#xff09;&#xff0c;如何解决CNN的不足&#xff0c;Hinton提出了一种对于图…...

unity 提取 字符串中 数字 修改后返回 字符串

参考博主&#xff1a;unity 提取字符串数字修改后返回字符串_unity string提取数字_lvcoc的博客-CSDN博客 正数和浮点数的 正则表达式 //正则表达式//const string pattern "\d";//表达1位或多位的整数数字 const string pattern "\d\.\d";//表达1位或…...

Kindle漫画转换终极方案:如何解决电子阅读器上的格式兼容性问题

Kindle漫画转换终极方案&#xff1a;如何解决电子阅读器上的格式兼容性问题 【免费下载链接】kcc KCC (a.k.a. Kindle Comic Converter) is a comic and manga converter for ebook readers. 项目地址: https://gitcode.com/gh_mirrors/kc/kcc 你是否曾经尝试在Kindle上…...

【Leetcode LCR 112】【记忆化搜索】矩阵中的最长递增路径

题目跳转 这一道题十分有意思(bushi)&#xff0c;我们来一起看一下 1.题目考点与理解 主要考点: 记忆化搜索DFS 的递归思想与状态定义方向遍历与边界合法性判断 主要理解: 重要理解1 : 不一定要从最小的111开始&#xff0c;每一个都需要遍历(贪心思想错误) 重要理解2&#…...

别再手动改配置了!用Docker Compose一键部署Pikachu靶场,5分钟搞定测试环境

5分钟极速搭建Pikachu靶场&#xff1a;Docker Compose自动化实战指南 每次准备网络安全练习环境时&#xff0c;最头疼的莫过于反复安装配置各种服务——PHP版本不兼容、MySQL连接失败、Web服务器配置错误...这些琐碎问题消耗了本应用于渗透测试学习的宝贵时间。今天要分享的这套…...

Linux系统管理必备:常用命令在Phi-3-vision模型部署与运维中的应用

Linux系统管理必备&#xff1a;常用命令在Phi-3-vision模型部署与运维中的应用 1. 前言&#xff1a;为什么需要掌握这些命令 部署和管理AI模型服务时&#xff0c;熟练使用Linux命令就像拥有了一把瑞士军刀。特别是对于Phi-3-vision这样的视觉大模型&#xff0c;从查看日志到监…...

SiameseUIE部署指南:test.py中custom_entities字段详解

SiameseUIE部署指南&#xff1a;test.py中custom_entities字段详解 1. 概述 如果你正在使用SiameseUIE模型进行信息抽取&#xff0c;那么test.py脚本中的custom_entities字段就是你最需要关注的核心配置。这个看似简单的字段&#xff0c;实际上决定了模型如何精准地从文本中抽…...

教无人机操控3年,这款仿真软件让我彻底告别“真机实训焦虑”

作为无人机专业实操教师&#xff0c;深耕一线教学3年&#xff0c;最大的痛点莫过于“真机实训难”——相信同行们都有共鸣&#xff0c;无人机操控教学看似是“练手”&#xff0c;实则处处是坑&#xff0c;每一个难题都让人头疼不已&#xff0c;甚至一度让我陷入教学焦虑。整理了…...

从裸机到RTOS:IMX6ULL启动流程与FreeRTOS源码实战解析

1. IMX6ULL裸机启动机制详解 第一次拿到IMX6ULL开发板时&#xff0c;很多人会疑惑&#xff1a;为什么我的程序烧录进去没反应&#xff1f;这得从芯片的启动机制说起。IMX6ULL上电后最先执行的并不是我们写的代码&#xff0c;而是芯片内部ROM中的固化程序。这个ROM代码就像个尽职…...

SAM 3在内容创作中的应用:快速分离图片视频主体,提升剪辑效率

SAM 3在内容创作中的应用&#xff1a;快速分离图片视频主体&#xff0c;提升剪辑效率 1. 引言&#xff1a;内容创作者的痛点与解决方案 在当今内容爆炸的时代&#xff0c;视频创作者和设计师们面临着一个共同的挑战&#xff1a;如何高效地从复杂背景中分离出主体对象。传统方…...

多平台资源嗅探与下载工具:解决网络资源获取难题的技术方案

多平台资源嗅探与下载工具&#xff1a;解决网络资源获取难题的技术方案 【免费下载链接】res-downloader 资源下载器、网络资源嗅探&#xff0c;支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https://gitcod…...

云原生图书馆管理系统架构设计:基于SaaS的一站式解决方案与实战案例分析

某中学图书馆数字化改造实战&#xff1a;传统Excel管理迁移至云端系统&#xff0c;借还效率提升300%&#xff0c;系统响应时间降低至200ms以内一、背景&#xff1a;传统图书馆管理的痛点分析1.1 技术债务积累在数字化转型的过程中&#xff0c;许多中小型学校图书馆依然停留在传…...