创建自定义脚本
- 让我们首先创建一个示例自定义脚本以在系统启动时自动运行。
# 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
- 检查并验证文件权限。
# ls -lrt /usr/local/sbin/myscript.sh
- 添加执行权限(如果尚未设置)。
# chmod +x /var/tmp/test_script.sh
启用 systemd 服务单元
- 重新加载systemd进程以考虑新创建的sample.service或者每次修改sample.service时。
# systemctl daemon-reload
- 启用此服务在重启后自动启动。
# systemctl enable sample.service
- 启动服务。
# systemctl start sample.service
- 重新启动主机以验证脚本在系统启动期间是否按预期启动。
# 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= : 指定目标,其中运行示例脚本
在 RHEL 5 和 6 中,我们通过 /etc/rc.d/init.d 使用 RHEL 的自动启动功能在系统启动时运行任何脚本。
从 RHEL 7 开始,init 被 systemd 取代,之前的方法现已弃用。
在 RHEL 7 中有另一种方法可以做到这一点。
日期:2020-09-17 00:12:05 来源:oir作者:oir