Linux如何设置脚本开机自启动?系统服务管理工具用法【教程】

酷伟酱_9320

酷伟酱_9320

2026-04-13

1159人浏览

原创

推荐使用systemd服务单元文件实现开机自启:创建/etc/systemd/system/myjob.service,配置unit[install]三段,赋予脚本可执行权限,执行daemon-reload后启用enable。

linux如何设置脚本开机自启动?系统服务管理工具用法【教程】

如果您在Linux系统中编写了一个自定义脚本,希望它在每次系统启动时自动运行,则需根据当前系统的初始化系统选择对应机制。以下是多种兼容主流发行版的设置方法:

一、使用systemd服务单元文件(推荐用于现代发行版)

systemd是CentOS 7+、Ubuntu 16.04+、Debian 8+等主流发行版默认的初始化系统。通过创建.service文件可实现脚本的标准化管理与开机自启。

1、创建服务单元文件:使用vim在/etc/systemd/system/目录下新建一个以.service结尾的文件,例如myjob.service。

2、编辑文件内容,填入标准单元配置:

[Unit]
Description=My Custom Script
After=network.target

[Service]
Type=oneshot
ExecStart=/usr/local/bin/myscript.sh
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

3、确保脚本具有可执行权限:运行sudo chmod +x /usr/local/bin/myscript.sh。

4、重载systemd配置:执行sudo systemctl daemon-reload。

5、启用开机自启:运行sudo systemctl enable myjob.service。

二、通过/etc/rc.local执行(兼容性广,适用于多数systemd及SysVinit系统)

/etc/rc.local是一个传统启动脚本,在系统完成基本初始化后按顺序执行其中命令,无需额外服务注册,适合作为轻量级启动入口。

1、编辑rc.local文件:运行sudo vim /etc/rc.local。

2、确认文件首行为#!/bin/bash,并确保该行存在且未被注释。

3、在exit 0语句之前添加您的脚本调用命令,例如:/usr/local/bin/myscript.sh > /var/log/myscript.log 2>&1。

4、赋予rc.local可执行权限:执行sudo chmod +x /etc/rc.local。

5、在systemd系统中启用rc-local服务(如未启用):运行sudo systemctl enable rc-local并检查状态sudo systemctl status rc-local。

三、使用SysVinit风格启动脚本(适用于CentOS 6、Ubuntu 14.04等旧版系统)

在仍使用SysVinit的系统中,需将脚本置于/etc/init.d/目录并注册到运行级别,由update-rc.d或chkconfig管理启动时机。

1、编写启动脚本:使用vim创建/etc/init.d/myscript,内容须包含标准LSB头信息。

Linux installer
Linux installer

先解析安全源,运行本地CLI安装、启动、卸载Linux桌面应用。用户请求时使用。

下载

2、在脚本开头插入必要注释块:

#!/bin/bash
### BEGIN INIT INFO
# Provides: myscript
# Required-Start: $local_fs $network
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Description: Run my custom script at boot
### END INIT INFO

3、在脚本主体中定义start、stop等动作逻辑,例如start()函数内调用/usr/local/bin/myscript.sh。

4、赋予脚本可执行权限:运行sudo chmod +x /etc/init.d/myscript。

5、注册至启动序列:对Debian/Ubuntu系执行sudo update-rc.d myscript defaults;对RHEL/CentOS系执行sudo chkconfig --add myscript && sudo chkconfig myscript on。

四、利用crontab @reboot指令(无需特权即可配置用户级启动)

crontab的@reboot时间标识允许非root用户在系统启动时触发一次任务,适用于仅需运行单次、不依赖系统服务生命周期的场景。

1、编辑当前用户的crontab:运行crontab -e。

2、在文件末尾新增一行:@reboot /usr/local/bin/myscript.sh > /tmp/myscript_boot.log 2>&1。

3、保存退出。下次重启后,该命令将在用户上下文中执行。

4、注意:此方式不保证网络就绪或文件系统完全挂载,若脚本依赖网络或特定挂载点,需自行加入等待逻辑。

五、放置于/etc/profile.d/目录(仅限登录会话生效)

/etc/profile.d/下的shell脚本会在每个交互式登录shell启动时执行,适用于需要为所有用户设置环境变量或运行初始化命令的场景,但不适用于系统级后台服务。

1、创建脚本文件:运行sudo vim /etc/profile.d/myscript.sh。

2、在文件中写入要执行的命令,例如:/usr/local/bin/myscript.sh &(注意添加&使其后台运行)。

3、设置执行权限:sudo chmod +x /etc/profile.d/myscript.sh。

4、该脚本将在每次用户登录Shell时触发,而非系统启动时刻,因此不满足真正意义上的“开机自启动”要求。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
default gateway怎么配置
default gateway怎么配置

配置default gateway的步骤:1、了解网络环境;2、获取路由器IP地址;3、登录路由器管理界面;4、找到并配置WAN口设置;5、配置默认网关;6、保存设置并退出;7、检查网络连接是否正常。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.12.07

357

5

vim保存退出命令
vim保存退出命令

vim是一个非常强大的文本编辑器,常用于Unix和Linux系统。它是从vi发展而来的,相比vi有许多改进和扩展。在vim中,保存并退出的命令是:wq"wq"这个命令是由两个部分组成的。其中,"w"表示写入文件,将所做的更改保存到磁盘;而"q"表示退出vim编辑器。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.08.01

329

3

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3970

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3393

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2553

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6190

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5822

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3413

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2905

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习