首页 > 系统相关 >CentOS 8 和 Ubuntu 20.04.2 LTS 中,您可以通过不同的方法实现在系统启动时自动运行特定指令或脚本

CentOS 8 和 Ubuntu 20.04.2 LTS 中,您可以通过不同的方法实现在系统启动时自动运行特定指令或脚本

时间:2024-08-02 16:51:10浏览次数:17  
标签:LTS 系统启动 CentOS my etc rc local 20.04

在 CentOS 8 和 Ubuntu 20.04.2 LTS 中,您可以通过不同的方法实现在系统启动时自动运行特定指令或脚本。这里是关于两种方法的解释和区别:

### 方法一:使用 `rc-local.service`

**CentOS 8 示例:**

 

$ cat /etc/rc.local_my.sh
#!/bin/bash
/bin/bash -c "ip -6 route add default via fe80::f816:3eff:fe14:d7bd dev eth0"
/bin/bash -c "ip route add default via 192.168.0.1"

 

vim /etc/systemd/system/rc-local.service
[Unit]
Description=/etc/rc.d/rc.local_my.sh Compatibility
ConditionPathExists=/etc/rc.d/rc.local_my.sh

[Service]
Type=forking
ExecStart=/etc/rc.d/rc.local_my.sh
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target
`====================================================================================================``

**Ubuntu 20.04.2 LTS 示例:**

 

$ cat /etc/rc.local_my.sh
#!/bin/bash
/bin/bash -c "ip -6 route add default via fe80::f816:3eff:fe14:d7bd dev eth0"
/bin/bash -c "ip route add default via 192.168.0.1"

 

vim /etc/systemd/system/rc-local.service
[Unit]
Description=Run /etc/rc.local_my.sh at startup

[Service]
Type=oneshot
ExecStart=/etc/rc.local_my.sh

[Install]
WantedBy=multi-user.target
```

#### 区别与适用性:

1. **Type 属性**:
- **CentOS 8**: 使用 `Type=forking`,适用于那些会 fork 出子进程并且父进程退出的情况,比如经典的 SysV init 脚本。
- **Ubuntu 20.04.2 LTS**: 使用 `Type=oneshot`,适用于一次性任务,即启动脚本后等待其完成,然后服务即标记为已完成。

2. **执行方式**:
- **CentOS 8**: 使用 `forking`,表示服务启动后会执行 `rc.local_my.sh` 脚本,然后父进程可能会退出,但子进程仍在后台运行。
- **Ubuntu 20.04.2 LTS**: 使用 `oneshot`,表示服务启动后会执行 `rc.local_my.sh` 脚本,然后等待其完成,服务任务完成后标记为完成。

3. **适用性**:
- 如果您的脚本或命令需要在启动时启动一个长期运行的服务或守护进程,可以选择 CentOS 8 的 `forking` 方式。
- 如果您只是希望在启动时执行一次性操作,并在完成后退出,可以选择 Ubuntu 20.04.2 LTS 的 `oneshot` 方式。

### 建议:

- 在 CentOS 8 中,使用 `rc-local.service` 的方式更符合经典的 `rc.local` 使用习惯,特别是对于那些需要在后台持续运行的任务。
- 在 Ubuntu 20.04.2 LTS 中,使用 `rc-local.service` 的 `oneshot` 方式更符合 systemd 单元的设计理念,特别适合一次性操作和简单的启动脚本。

无论选择哪种方法,都应该根据您的具体需求和操作习惯来决定。

标签:LTS,系统启动,CentOS,my,etc,rc,local,20.04
From: https://www.cnblogs.com/wendaozhe/p/18339112

相关文章

  • centos7 解决docker 拉取镜像错误 error pulling image configuration: download fai
    为什么会出现i/otimeout错误?i/otimeout错误主要是由于网络连接不稳定或者服务器响应慢导致的。当Docker尝试从镜像仓库拉取镜像时,如果在规定时间内没有得到响应,就会出现i/otimeout错误。“错误的根源在于网络连接和镜像仓库的响应速度” 解决方案:换源为了解决这个......
  • Ubuntu20.04LTS环境docker+cephadm方式部署Ceph 17.2.5
    简述什么是ecph​ceph是一个开放、自我修复和自我管理的统一分布式存储系统。具有高扩展性、高新能、高可靠性的优点。​ceph分布式存储优势​高扩展性:使用普通X86服务器,支持10~1000台服务器,支持TB到EB级的扩展。​高可靠性:没有单点故障,多数据副本,自动管理,自动修复。​高......
  • 记录一次CentOS/Linux下安装vsftp服务器的过程
    1安装ftp软件yuminstallvsftpd*-y2配置服务启动#启用firewalld服务systemctlstartvsftpd.service#开启vsftpd服务这条命令设置firewalld服务在系统启动时自动启动。systemctlenable命令用于管理系统服务的启动和停止配置。启用服务后,它会在每次系统启动时......
  • centos7 gcc+SCL升级
    1、环境说明[[email protected]]#gcc--versiongcc(GCC)4.8.520150623(RedHat4.8.5-44)Copyright(C)2015FreeSoftwareFoundation,Inc.Thisisfreesoftware;seethesourceforcopyingconditions.ThereisNOwarranty;not......
  • 执行`docker build -f ./dockerfile -t mycentos7:v1 .`时 `RUN yum install -y vim`
    执行dockerbuild-f./dockerfile-t时RUNyuminstall-yvim报错1.报错信息[+]Building0.9s(5/6)......
  • centos在线安装部署2024年最新的docker版本
    1.yum包更新到最新sudoyumupdate-y2.安装依赖软件包sudoyuminstall-yyum-utilsdevice-mapper-persistent-datalvm23.添加阿里的镜像,下载镜像速度比较快sudoyum-config-manager--add-repohttp://mirrors.aliyun.com/docker-ce/linux/centos/docker-c......
  • 代码审计: ThinkPHP V6.0.12LTS反序列化漏洞复现
    这里写目录标题源码下载一、前缀知识事件回调:二、代码审计查找反序列化路由三、利用链分析构造exp源码下载在我的个人免费资源里面一、前缀知识事件回调:概念:在某个特定事件发生时,系统会调用预先定义好的函数(即回调函数)来处理该事件。回调函数通常作为参数传递给......
  • 【折腾记录】Ubuntu24.04LTS下安装Windows版微信
    最近装了Win11和Ubuntu双系统,为了能更方便地和朋友交流,遂决定在Ubuntu下安装微信。首先要去网上找教程,经过一番搜索,正当我在wine和deepin-wine之间犹豫不定之时,忽然发现了GitHub上的这个仓库zq1997/deepin-wine据其README描述:deepin-wine环境与应用在Debian/Ubuntu上的移植仓......
  • 阿里云CentOS7.x ECS云盘在线扩容操作
    说明这里只介绍如何在线扩容操作系统:CentOS7.x以下操作实现给200G云盘扩容至300G;操作步骤创建快照找到需要扩容的云盘,创建快照,避免扩容出问题数据丢失,阿里云快照是收付费的,快照时长设置1天即可;操作比较简。磁盘创建快照创建快照配置截图(保留时间设置1天)在线扩容点......
  • Ubuntu24.04LTS使用pip时显示:error: externally-managed-environment
    Ubuntu24.04LTS中使用apt按照pip,然后pipinstall时显示如下信息:error:externally-managed-environment×Thisenvironmentisexternallymanaged╰─>ToinstallPythonpackagessystem-wide,tryaptinstallpython3-xyz,wherexyzisthepackageyouaretryin......