# Ubuntu2204开机自启脚本配置
© 2026 zhangjiannan. All Rights Reserved.
**文档控制**
|**序号**|**修改人/验证人**|**修改内容**|**日期**|
|---|---|---|---|
|1|zhangjiannan|创建文档|2025\.2\.15|
|||||
|||||
|||||
# 一、关于本指导书
## 1\.1 指导书目的
针对客户指定服务、软件、脚本需要开机自启的情况,为实施人员提供简明规范性技术指导。
## 1\.2 指导书适用对象
本指导书适用于涉及服务器交付的实施人员。
## 1\.3 指导书中的格式定义
本指导书代码块中内容为执行的shell命令及输出,例如:
```Bash
[bjuci@server01 ~]$ ls
Intel
```
## 1\.4 本指导书测试平台
|**处理器平台**|Intel\(R\) Core\(TM\) i7\-1165G7 @ 2\.80GHz|
|---|---|
|**操作系统版本**|Ubuntu 22\.04\.4 LTS Server版|
|**前置条件**|无|
## 1\.5 所需软件官方下载地址
|不涉及|不涉及|
|---|---|
# 二、背景介绍
在 Ubuntu 18\.04 版本后,rc\.local 脚本被弃用了,这意味着 rc\.local 脚本在 Ubuntu 18\.04 版本后不再被默认启用。相反,systemd 已经成为 Ubuntu 的系统服务管理器,systemd 的方式可以更好地管理系统服务。
在 systemd 中,可以使用 systemd 的 systemctl 命令来启动、停止、重启和管理服务。相比于 rc\.local,systemd 提供了更加灵活和可靠的服务管理方式,例如可以控制服务的启动顺序、并行启动多个服务等。
因此,从 Ubuntu 18\.04 开始,建议使用 systemd 来管理系统服务,而不是使用 rc\.local。如果需要在启动时运行自定义脚本,可以考虑使用 systemd 的 systemd\-unit\-files 功能
# 三、解决方案
在 Ubuntu 22\.04 上实现开机自启脚本需要遵循以下步骤
## 3\.1 创建需要开机自动执行的脚本
编写需要自启动的脚本文件,比如 /etc/rc\.local 。
## 3\.2 给该脚本文件赋予可执行权限
```Bash
*$ chmod +x /etc/rc.local *
```
## 3\.3 创建服务
在/etc/systemd/system 目录下创建一个新的 service 文件,命名为 rc\-local\.service
```Bash
*$ sudo vim rc-local.service*
```
在该文件中输入以下内容:
```Bash
[Unit]
Description=/etc/rc.local Compatibility
After=network.target
[Service]
ExecStart=/etc/rc.local
TimeoutSec=0
RemainAfterExit=true
[Install]
WantedBy=multi-user.target
```
**各参数解释:**
**【Description】** 对本服务的描述
**【After】**字段不是必须的,服务依赖的其他服务,本例中需要在 network\.target 服务启动后才能启动本服务。可以省略。如果省略该字段,则 systemd 将默认将当前服务的启动顺序设置为与其他服务无关,即在启动过程中没有任何依赖性关系,服务的启动顺序由系统自行决定。然而,在某些情况下,如果服务依赖于其他服务,可以使用 After 字段来明确指定其依赖关系,以确保服务的启动顺序正确。
**【User】**字段不是必须的,如果省略该字段,服务将使用 root 用户来运行脚本。
**【ExecStart】** 关键字段,服务启动命令,指定服务启动时需要执行的命令或脚本
**【WantedBy】**用于指定服务的自动启动级别,在 Linux 系统中,多用户模式是指允许多个用户同时登录并使用系统资源的模式,与之相对的是单用户模式,只有一个用户可以登录并使用系统资源。多用户模式是 Linux 系统最常用的模式之一,因此 multi\-user\.target 是系统默认的运行级别。
## 3\.4 启动该服务并设置开机自启
```Bash
$ *sudo systemctl daemon-reload*
*$ sudo systemctl start rc-local.service*
*$ sudo systemctl enable rc-local.service*
```
现在/etc/rc\.local脚本文件将在每次系统启动时自动运行。
如果需要停止该服务并禁用开机自启,可以使用以下命令:
```Bash
*$ sudo systemctl stop rc-local.service*
*$ sudo systemctl disable rc-local.service*
```
注意:在创建 service 文件时,需要确保该文件的命名与服务名称相同,并且后缀为 \.service。同时,在使用 systemctl 命令时,需要使用 sudo 权限。
## 3\.5 脚本示例
/etc/rc\.local文件内容如下:
```Bash
#!/bin/bash
cpupower frequency-set --governor performance
nvidia-smi -pm 1
exit 0
```
此时,在rc\.local中写入的命令,将在开机时自动运行。该脚本则是开机默认打开CPU性能模式,打开GPU常驻模式。