云网牛站
所在位置:首页 > Linux命令 > Linux在重新启动或启动时执行命令或脚本的三种方法

Linux在重新启动或启动时执行命令或脚本的三种方法

2020-05-13 16:11:05作者:力为稿源:云网牛站

可以在启动时添加Linux上众所周知的服务,而不会出现任何问题。例如,如果要在引导时添加Apache Httpd服务,则可以在chkconfig和systemctl命令的帮助下执行此操作。有时您需要在启动时添加自定义脚本、命令或服务,那该如何执行此操作?您可以使用以下三种方法执行此操作。在本文中,我们将通过示例向您展示如何使用这些方法。

Linux在重新启动或启动时执行命令或脚本的三种方法

 

方法1:如何使用/etc/rc.d/rc.local文件在重新启动或启动时运行脚本或命令

传统上,“/etc/rc.local”文件是在切换到多用户运行级别的过程结束时启动所有正常的计算机服务之后执行的。

此方法也适用于systemd系统。

您需要将脚本的位置添加到“/etc/rc.d/rc.local”文件中以在引导时运行。

确保文件具有运行权限:

# chmod +x /etc/rc.d/rc.local

为了证明这一点,我们将创建一个简单的示例脚本,您可以根据需要创建任何脚本:

# vi /opt/scripts/run-script-on-boot.sh

#!/bin/bash

date > /root/on-boot-output.txt

hostname > /root/on-boot-output.txt

脚本准备好后,设置可执行权限:

# chmod +x /opt/scripts/run-script-on-boot.sh

最后,将该脚本添加到文件底部:

# vi /etc/rc.d/rc.local

/opt/scripts/run-script-on-boot.sh

重新启动系统进行检查:

# reboot

参考:在Linux系统中运行.sh文件的两种方法

 

方法2:如何使用crontab在重新启动或启动时执行命令或脚本

cron在特定时间在后端自动执行计划的作业。

使用带有cron job的特殊字符串“@reboot”可以轻松完成此操作。

@reboot是一个特殊的字符串,它允许用户在启动时运行任何命令或脚本。

此示例在系统重启时运行“/opt/scripts/run-script-on-boot.sh”文件。

我们将使用与上面相同的脚本。

为此,只需在crontab文件中添加以下条目:

# crontab -e

@reboot /opt/scripts/run-script-on-boot.sh

重新启动系统进行检查:

# reboot

 

方法3:如何在重新启动或启动时使用systemd服务单元运行命令或脚本

此方法仅适用于systemd系统,此方法非常简单。

我们将使用上面相同的脚本进行演示。

为此,您需要创建一个systemd启动脚本并将其放置在“/etc/systemd/system/”目录中。

这是我们的示例系统启动单元脚本:

# vi sample-on-boot-script.service

[Unit]

Description=Run a Custom Script at Startup

After=default.target

[Service]

ExecStart=/opt/scripts/run-script-on-boot.sh

[Install]

WantedBy=default.target

将单元脚本放置在systemd位置后,运行以下命令以更新systemd配置文件并启用服务:

# systemctl daemon-reload

# systemctl enable sample-on-boot-script.service

重新启动系统进行检查:

# reboot

 

提示

如果要在后台运行脚本,则需要添加结尾的“&”符号:

/Path/To/My_Script &

如果要以其他用户身份运行命令,请使用以下格式:

su - $USER -c /Path/To/My_Script

 

相关主题

每次登录Shell时使用Bash脚本查看Linux上的系统信息

Linux命令子频道
精选文章
热门文章