设置Shell脚本开机自启的方法和实例

 更新时间:2024年02月23日 10:40:14   作者:七维大脑  
这篇文章主要介绍了设置Shell脚本开机自启的方法和实例,文中通过代码示例给大家介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下

1. 准备一个Shell脚本

#!/bin/sh
#chkconfig: 2345 22 80
#description: Filebeat Service
echo "start test ...";
touch /data/aaa.txt
sleep 3
echo "test over ..."

1.1 注意

#!/bin/sh
#chkconfig: 2345 22 80
#description: Filebeat Service

这三行必须放在脚本前三行。否则可能会出现 服务 xxx.sh 不支持 chkconfig 或者 service xxx.sh does not support chkconfig

2. 复制脚本到init.d目录

如果脚本没有做统一管理的话,也可以直接在init.d目录下创建脚本。

# 注意这里脚本路径改成自己的路径,如果直接在init.d目录下创建的可忽略这条命令
cp /data/test.sh /etc/init.d/test.sh

3. 设置脚本权限

chmod +x /etc/init.d/test.sh

4. 添加服务

chkconfig --add test.sh

执行无效的话 尝试切换到 /etc/init.d/ 目录下执行。

5. 测试是否成功添加

#  test.sh 换成你自己的脚本名
chkconfig --list test.sh

2345 开启则成功添加开机自启。

以下为补充科普,可不看

6. 设置Shell脚本开机自启的方法和实例

在Linux系统中,自启动脚本是管理和配置系统的重要手段之一。本章节将介绍如何设置Shell脚本在系统启动时自动运行,并将关注于不同Linux系统下的实现方法。

6.1 Shell脚本自启动原理

Shell脚本的自启动可以通过将脚本添加到系统启动时执行的目录或通过系统服务管理器实现。下面将分别介绍这两种方法的原理。

6.1.1 添加到启动目录

Linux系统在启动时会自动执行特定目录中的脚本文件。通过将Shell脚本添加到这些目录中,可以实现开机自启动。

  • /etc/rc.d/rc.local目录: 在一些传统的Linux发行版中,可以将脚本添加到/etc/rc.d/rc.local文件中。这个文件在系统启动时最后被执行,可以用于自定义启动脚本。
# 将脚本路径添加到rc.local文件
echo "/path/to/your/script.sh" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

6.1.2 使用系统服务管理器

现代Linux系统通常使用systemd或其他服务管理器来控制系统服务。通过创建一个systemd服务单元,可以方便地管理Shell脚本的自启动。

  • 创建systemd服务单元文件:
# /etc/systemd/system/your-service.service
[Unit]
Description=Your Service Description
After=network.target

[Service]
ExecStart=/path/to/your/script.sh
Restart=always
User=your_username

[Install]
WantedBy=multi-user.target
  • 启用并启动服务:
# 启用服务
sudo systemctl enable your-service

# 启动服务
sudo systemctl start your-service

6.2 不同Linux系统的具体实现方法

6.2.1 Ubuntu/Debian

在Ubuntu和Debian系统中,可以通过systemd服务管理器实现Shell脚本的自启动。

# 创建systemd服务单元文件
sudo nano /etc/systemd/system/your-service.service

在文件中添加上述提到的服务单元内容,保存并退出。然后启用并启动服务。

sudo systemctl enable your-service
sudo systemctl start your-service

6.2.2 CentOS/RHEL

在CentOS和RHEL系统中,可以使用systemd或将脚本添加到/etc/rc.d/rc.local文件。

使用systemd

# 创建systemd服务单元文件
sudo nano /etc/systemd/system/your-service.service

添加服务单元内容,保存并退出,然后启用并启动服务。

sudo systemctl enable your-service
sudo systemctl start your-service

添加到rc.local

# 将脚本路径添加到rc.local文件
echo "/path/to/your/script.sh" >> /etc/rc.d/rc.local
chmod +x /etc/rc.d/rc.local

6.2.3 Arch Linux

Arch Linux也使用systemd作为服务管理器。同样,可以通过创建systemd服务单元文件实现自启动。

# 创建systemd服务单元文件
sudo nano /etc/systemd/system/your-service.service

添加服务单元内容,保存并退出,然后启用并启动服务。

sudo systemctl enable your-service
sudo systemctl start your-service

以上就是设置Shell脚本开机自启的方法和实例的详细内容,更多关于Shell脚本开机自启的资料请关注脚本之家其它相关文章!

相关文章

  • linux shell常用循环与判断语句(for,while,until,if)使用方法

    linux shell常用循环与判断语句(for,while,until,if)使用方法

    这篇文章主要介绍了linux shell循环,判断介绍,以及实例使用方法,需要的朋友可以参考下
    2019-04-04
  • Shell命令解释器分类示例详解

    Shell命令解释器分类示例详解

    Shell是负责User与Linux OS之间沟通的桥梁,Shell为用户提供了一个操作界面,User在这个界面输入指令,其实就是通过Shell向Linux Kernel传递过去,这也就是为什么Shell也叫解释器的原因,这篇文章主要给大家介绍了关于Shell命令解释器分类的相关资料,需要的朋友可以参考下
    2023-05-05
  • 用Shell脚本快速搭建Ubuntu下的Nodejs开发环境

    用Shell脚本快速搭建Ubuntu下的Nodejs开发环境

    这篇文章主要介绍了用Shell脚本快速搭建Ubuntu下的Nodejs开发环境的方法,需要的朋友可以参考下
    2014-03-03
  • virtualbox 中的linux 共享文件的方法

    virtualbox 中的linux 共享文件的方法

    这篇文章主要介绍了virtualbox 中的linux 共享文件的方法,非常不错,具有参考借鉴价值,需要的朋友参考下
    2017-01-01
  • shell编程中for循环语句的实现过程及案例

    shell编程中for循环语句的实现过程及案例

    Bash Shell中主要提供了三种循环方式:for、while和until,下面这篇文章主要给大家介绍了关于shell编程中for循环语句的实现过程及案例,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • linux shell命令的常用快捷键

    linux shell命令的常用快捷键

    下面是一些shell的常用快捷键,快捷键玩熟悉了在一定程度上是可以提高工作效率滴
    2013-01-01
  • Bash脚本中括号和反引号的使用

    Bash脚本中括号和反引号的使用

    我们经常需要引用变量或者命令的执行结果来作为文件的名字或者日志的输出,本文主要介绍了Bash脚本中括号和反引号的使用,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • linux下监视进程 崩溃挂掉后自动重启的shell脚本

    linux下监视进程 崩溃挂掉后自动重启的shell脚本

    如何保证服务一直运行?如何保证即使服务挂掉了也能自动重启?在写服务程序时经常会碰到这样的问题。在Linux系统中,强大的shell就可以很灵活的处理这样的事务
    2013-06-06
  • Shell脚本运行中的停止方法实现

    Shell脚本运行中的停止方法实现

    Linux系统Shell中提交了一个脚本,但是需要停止这个进程,如何处理?本文就来详细的介绍一下,感兴趣的可以了解一下
    2021-11-11
  • Linux命令中的rpm安装命令

    Linux命令中的rpm安装命令

    RPM 的全称为Redhat Package Manager ,是由Redhat 公司提出的,用于管理Linux 下软件包的软件。下面通过本文给大家分享Linux命令中的rpm安装命令,需要的的朋友参考下吧
    2017-06-06

最新评论