Linux使用systemd服务和crontab实现Shell脚本开机自动运行过程

 更新时间:2024年09月12日 14:54:41   作者:小鹿先生~  
在Linux系统中,使用systemd和crontab是实现Shell脚本开机自启动的两种常用方法,首先,需创建一个Shell脚本,将其放置在适当目录,通过编写.service文件并将其移动到/etc/systemd/system/目录下,可以设置为systemd服务

简介

systemd是Linux系统中的一个初始化系统和服务管理器。它可以用于在系统启动时自动运行Shell脚本。

crontab是一个用于定时执行任务的工具。我们可以通过编辑crontab文件来设置开机自启动

前提条件

创建一个Shell脚本文件,例如myscript.sh。该脚本将在系统启动时自动运行。

将脚本文件移动到一个合适的目录,例如/path/to/myscript.sh。

使用systemd服务

创建一个.service文件

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

[Service]
ExecStart=/path/to/myscript.sh

[Install]
WantedBy=default.target

将.service文件移动到/etc/systemd/system/目录下。

service文件内容详解

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

Description:描述服务的简短说明
After:指定了服务应该在哪个目标(target)之后启动,在这里是"network.target",则服务需要在网络启动之后才能正常运行

[Service]
ExecStart=/path/to/myscript.sh
ExecStart:指定了服务启动时的执行命令或脚本的路径

[Install]
WantedBy=default.target
WantedBy:指定了服务应该被关联到哪个目标(target)进行启动,默认为"default.target",意味着服务会随系统的默认目标一起启动。
#刷新systemd服务:
sudo systemctl daemon-reload

#使用以下命令来启用服务并使其在系统启动时自动运行:
sudo systemctl enable myscript.service

#使用以下命令手动启动服务:
sudo systemctl start myscript.service

注意:

  • 若你此时手动启动服务,它将会立即运行。
  • 但是,系统重启后,服务会自动启动。

使用crontab

打开终端,并输入以下命令来编辑crontab文件:

crontab -e
#在打开的文件中添加以下内容:

@reboot /path/to/myscript.sh
#/path/to/myscript.sh是你的Shell脚本文件的路径

保存并退出编辑器。

结束语

使用服务和crontab两种方法在Linux系统中实现开机自启动Shell脚本的步骤,当系统启动时,Shell脚本将自动运行。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Linux sftp命令用法

    Linux sftp命令用法

    这篇文章主要介绍了Linux sftp命令用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-12-12
  • Linux创建服务使用systemctl管理详解

    Linux创建服务使用systemctl管理详解

    文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权限配置与状态验证
    2025-09-09
  • Centos7下编译安装配置Nginx+PHP+MySql环境

    Centos7下编译安装配置Nginx+PHP+MySql环境

    这篇文章主要介绍了Centos7下编译安装配置Nginx+PHP+MySql环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • CentOS6.5系统简单安装与配置Nginx服务器的方法

    CentOS6.5系统简单安装与配置Nginx服务器的方法

    这篇文章主要介绍了CentOS6.5系统简单安装与配置Nginx服务器的方法,结合实例形式较为详细的分析了CentOS6.5平台安装及配置nginx服务器的具体步骤、相关命令及使用方法,需要的朋友可以参考下
    2018-04-04
  • Linux文件清空的五种方法总结分享

    Linux文件清空的五种方法总结分享

    这篇文章主要给大家总结了Linux文件清空的五种方法,其中包括使用重定向的方法、使用true命令重定向清空文件、使用cat/cp/dd命令及/dev/null设备来清空文件、使用echo命令清空文件以及使用truncate命令清空文件等方法,需要的朋友可以参考下。
    2017-03-03
  • centos6.5 安装hadoop1.2.1的教程详解【亲测版】

    centos6.5 安装hadoop1.2.1的教程详解【亲测版】

    这篇文章主要介绍了centos6.5 安装hadoop1.2.1的教程详细,该教程小编亲测过,非常不错,值得推荐给大家,需要的朋友可以参考下
    2018-08-08
  • 使用squid搭建http和https的代理服务器设置指南

    使用squid搭建http和https的代理服务器设置指南

    今天小编就为大家分享一篇关于使用squid搭建http和https的代理服务器设置指南,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-12-12
  • Linux服务器挂载新硬盘方式

    Linux服务器挂载新硬盘方式

    本文详细记录了在一台主机上插上一块8T硬盘后遇到的问题及解决过程,初始问题包括无法重启和/etc/fstab文件配置错误,通过手动挂载、查看文件系统类型以及系统日志,最终确定是插槽顺序问题导致硬盘名称混乱,通过调整/etc/fstab文件中的挂载分区和文件系统类型
    2025-02-02
  • CentOS7 下安装telnet服务的实现方法

    CentOS7 下安装telnet服务的实现方法

    这篇文章主要介绍了CentOS7 下安装telnet服务的实现方法的相关资料,希望通过本文能帮助到大家,让大家实现这样功能的方法,需要的朋友可以参考下
    2017-10-10
  • Linux内核中的设计模式之全面理解与示例代码

    Linux内核中的设计模式之全面理解与示例代码

    这篇文章主要介绍了Linux内核中的设计模式之全面理解与示例代码,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论