创建自定义脚本

  1. 让我们首先创建一个示例自定义脚本以在系统启动时自动运行。
# vi /var/tmp/test_script.sh
#!/bin/bash
echo "This is a sample script to test auto run during boot" > /var/tmp/script.out
echo "The time the script run was -->  `date`" >> /var/tmp/script.out
  1. 检查并验证文件权限。
# ls -lrt /usr/local/sbin/myscript.sh
  1. 添加执行权限(如果尚未设置)。
# chmod +x /var/tmp/test_script.sh

启用 systemd 服务单元

  1. 重新加载systemd进程以考虑新创建的sample.service或者每次修改sample.service时。
# systemctl daemon-reload
  1. 启用此服务在重启后自动启动。
# systemctl enable sample.service
  1. 启动服务。
# systemctl start sample.service
  1. 重新启动主机以验证脚本在系统启动期间是否按预期启动。
# systemctl reboot
on  it road.com

创建新的 systemd 服务单元

在 /etc/systemd/system/sample.service 中创建一个新的服务单元文件,内容如下。
服务单元的名称是用户定义的,可以是我们选择的任何名称。

# vi /etc/systemd/system/sample.service
[Unit]
Description=Description for sample script goes here
After=network.target
[Service]
Type=simple
ExecStart=/var/tmp/test_script.sh
TimeoutStartSec=0
[Install]
WantedBy=default.target

其中

After= : 如果脚本需要任何其他系统设施(网络等),请修改[Unit]部分以包含适当的After=、Wants=、Requires=指令。
Type= : 可以将[Service]部分中的开关Type=simple 修改成 Type=idle 来延迟脚本的执行,直到调度所有其他作业
WantedBy= :  指定目标,其中运行示例脚本
CentOS/RHEL 7:如何在引导期间自动运行自定义的脚本

在 RHEL 5 和 6 中,我们通过 /etc/rc.d/init.d 使用 RHEL 的自动启动功能在系统启动时运行任何脚本。
从 RHEL 7 开始,init 被 systemd 取代,之前的方法现已弃用。
在 RHEL 7 中有另一种方法可以做到这一点。

日期:2020-09-17 00:12:05 来源:oir作者:oir