利用rc.local开机自启动程序

本文详细介绍如何在Linux系统中配置自启动脚本,包括将普通用户加入sudoer、修改rc.local服务、确保脚本执行权限等关键步骤,以及如何测试自启动功能和排查常见问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

准备工作

普通用户ks加入了sudoer ,免密
用ks登录系统

开启 rc-local服务

sudo systemctl enable rc-local

修改rc.local

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

rc.local内容如下

#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.

touch /var/lock/subsys/local

su - ks -s "/ks/start_bfs_all.sh"

每次系统启动都会toch /var/lock/subsys/local ,这个文件的修改时间也就是系统最后启动时间,后面我们加了一行我们要启动脚本 。

  • - ks表示要切换到ks用户下执行
  • -s表示要执行的脚本文件,要用绝对路径

执行的脚本要有执行权限

sudo  chmod +x /ks/start_bfs_all.sh

示例: start_bfs_all.sh脚本内容如下,这里脚本又嵌套了脚本

cd /aos/ks/9324 && "./start.sh"
cd /aos/ks/afs_bin &&"./start.sh"
cd /ks/9210ED00-09 && "./start.sh"
cd /ks/9324FF00-39 && "./start.sh"
cd /ks/pn/pnc && "./start.sh

测试自启动:启动rc-local或者重启系统

su root
sudo  systemctl start rc-local  

or

sudo  systemctl reboot

检查你的程序是否启动

问题排查: 脚本执行出错?

journalctl -e -u rc-local.service
systemctl status rc-local
sudo cat /var/log/syslog | grep -i rc.local
### 如何在 Linux 中配置 `rc.local` 实现开机自动运行脚本 #### 创建和编辑 `/etc/rc.local` 对于一些 Linux 发行版,默认情况下可能不存在 `/etc/rc.local` 文件。如果缺少此文件,则可以根据需求手动创建它[^3]。 ```bash sudo touch /etc/rc.local sudo chmod +x /etc/rc.local ``` 接着,使用文本编辑器打开这个新创建的文件: ```bash sudo vim /etc/rc.local ``` 向其中添加要执行的任务命令,在每条命令后面应该保留足够的权限以便顺利执行,并确保最后一行为 `exit 0` 表明正常退出状态码[^4]。 #### 配置 systemd 启用 rc-local 服务 为了使 `/etc/rc.local` 能够生效,还需要启用对应的 systemd 单元 `rc-local.service` 并启动之[^2]。 ```bash sudo systemctl enable rc-local sudo systemctl start rc-local ``` 这一步骤非常重要,因为现代版本的大多数 Linux 发行版默认采用的是 Systemd 初始化系统而不是 SysVinit 或者其他传统方式来管理进程和服务;而 `rc-local.service` 正是用来兼容旧式的 `/etc/rc.local` 的一种机制。 #### 修改 rc.local 权限与环境变量加载 确保给定适当读写权限使得能够被执行的同时也允许修改其内部逻辑而不受限于权限不足的问题。另外需要注意一点就是如果你打算在里面调用某些特定环境下才能使用的工具或函数库的话最好先通过 `source /etc/profile` 加载全局环境变量以避免找不到命令的情况发生[^1]。 ```bash chmod +x /etc/rc.d/rc.local echo 'source /etc/profile' | sudo tee -a /etc/rc.local ``` 以上就是在 Linux利用 `rc.local` 进行简单任务自动化处理的一个基本流程介绍。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值