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

240806-在Linux/RHEL开机中自动启动bash脚本

在这里插入图片描述

A. 常规方法

要在Red Hat Enterprise Linux (RHEL) 中设置开机启动的bash脚本,可以使用以下方法之一:

方法1:使用/etc/rc.d/rc.local

  1. 打开/etc/rc.d/rc.local文件:

    sudo vi /etc/rc.d/rc.local
    
  2. 在文件末尾添加你想要执行的bash脚本命令。例如:

    /path/to/your_script.sh
    
  3. 保存文件并退出编辑器。

  4. 确保rc.local文件具有执行权限:

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

方法2:使用systemd服务

  1. 创建一个自定义的systemd服务文件。例如,创建一个名为my_script.service的文件:

    sudo vi /etc/systemd/system/my_script.service
    
  2. 添加以下内容到该文件中:

    [Unit]
    Description=My Script Service
    After=network.target[Service]
    ExecStart=/path/to/your_script.sh
    Type=simple[Install]
    WantedBy=multi-user.target
    
  3. 保存文件并退出编辑器。

  4. 重新加载systemd管理器配置:

    sudo systemctl daemon-reload
    
  5. 启用并启动该服务:

    sudo systemctl enable my_script.service
    sudo systemctl start my_script.service
    

方法3:使用crontab

  1. 编辑root用户的crontab文件:

    sudo crontab -e
    
  2. 添加以下行以在系统启动时执行你的bash脚本:

    @reboot /path/to/your_script.sh
    
  3. 保存文件并退出编辑器。

选择一种方法并按照步骤操作即可确保你的bash脚本在RHEL开机时自动执行。

B. conrtab编辑

crontab文件中,可以使用井号(#)来注释内容。任何以#开头的行都会被认为是注释,并且不会被执行。这在你想要添加注释说明或临时禁用某个任务时非常有用。

示例

以下是一些示例,展示如何在crontab文件中添加注释:

  1. 添加注释说明

    # This is a sample crontab file
    # The following command runs a backup script every day at 2 AM
    0 2 * * * /path/to/backup_script.sh
    
  2. 临时禁用任务

    # Temporarily disabling the database cleanup job
    # 0 3 * * * /path/to/cleanup_script.sh
    

步骤

  1. 打开crontab文件进行编辑:

    crontab -e
    

    如果要编辑root用户的crontab文件:

    sudo crontab -e
    
  2. 在文件中添加注释或注释掉某行:

    # This job runs every day at midnight
    0 0 * * * /path/to/daily_job.sh# Temporarily disable the weekly report job
    # 0 6 * * 1 /path/to/weekly_report.sh
    
  3. 保存并退出编辑器(在vim中,按下Esc键,然后输入:wq并按下Enter)。

验证crontab

查看当前用户的crontab任务:

crontab -l

查看root用户的crontab任务:

sudo crontab -l

确保你的注释内容正确显示,未被错误地执行。

C. 内容解释

crontab中的内容@reboot /home/lgk/init.sh表示在系统每次重启时,运行位于/home/lgk/init.sh的脚本。

详细解释

  • @reboot:这是cron中的特殊时间字符串,表示该任务将在系统每次启动(重启)时运行。与标准的时间格式不同,@reboot不需要指定具体的时间点,而是自动在系统启动时触发。

  • /home/lgk/init.sh:这是要执行的脚本的完整路径。该脚本将在系统重启后被执行。

如何添加

  1. 打开crontab文件进行编辑:

    crontab -e
    

    如果是root用户的任务,可以使用:

    sudo crontab -e
    
  2. 添加以下行到crontab文件:

    @reboot /home/lgk/init.sh
    
  3. 保存并退出编辑器(在vim中,按下Esc键,然后输入:wq并按下Enter)。

检查和验证

  • 查看当前用户的crontab任务:

    crontab -l
    
  • 查看root用户的crontab任务:

    sudo crontab -l
    

确认脚本可执行

确保你的脚本/home/lgk/init.sh具有执行权限。可以通过以下命令来设置:

chmod +x /home/lgk/init.sh

总结

@reboot /home/lgk/init.sh是一条crontab任务,它在系统启动时自动执行/home/lgk/init.sh脚本。这对于需要在系统启动时执行初始化任务、配置服务或启动应用程序非常有用。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • YARN 的介绍
  • Memcached的介绍与详解
  • 升级MacOS(Mojave)后使用git问题
  • 爬虫--模拟登录代理IP
  • Wordpress建站问题记录
  • 【C++】第一讲:入门概论
  • JavaScript 数组之flat和flatMap
  • Vue 3+Vite+Eectron从入门到实战系列之(四)一Electron热身运动(二)
  • mmsegmentation 自定义模型报错:KeyError: ‘EncoderDecoder is not in the model registry
  • 【HBZ分享】bean的生命周期 以及 各个阶段在spring的哪个类被调用
  • Leetcode75-8 递增的三元子序列
  • 在Windows MFC\C++编程中,如何使用OnCopyData函数
  • React 条件判断
  • MySql审计平台
  • MacOS Anaconda 安装教程及虚拟环境创建
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • CentOS7简单部署NFS
  • CSS3 变换
  • Effective Java 笔记(一)
  • LintCode 31. partitionArray 数组划分
  • linux学习笔记
  • SQLServer之索引简介
  • SwizzleMethod 黑魔法
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • 电商搜索引擎的架构设计和性能优化
  • 规范化安全开发 KOA 手脚架
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 世界上最简单的无等待算法(getAndIncrement)
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 数组大概知多少
  • 学习HTTP相关知识笔记
  • 学习使用ExpressJS 4.0中的新Router
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​TypeScript都不会用,也敢说会前端?
  • ​插件化DPI在商用WIFI中的价值
  • # Redis 入门到精通(七)-- redis 删除策略
  • (2015)JS ES6 必知的十个 特性
  • (3)STL算法之搜索
  • (void) (_x == _y)的作用
  • (八)c52学习之旅-中断实验
  • (二)fiber的基本认识
  • (二)丶RabbitMQ的六大核心
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (论文阅读11/100)Fast R-CNN
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (五)IO流之ByteArrayInput/OutputStream
  • (转)Android学习系列(31)--App自动化之使用Ant编译项目多渠道打包
  • (转)创业家杂志:UCWEB天使第一步
  • (转)大型网站的系统架构
  • .Net - 类的介绍
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET(C#) Internals: as a developer, .net framework in my eyes
  • .NET6 开发一个检查某些状态持续多长时间的类
  • .NET成年了,然后呢?