CentOS 7服务器重启或启动时执行命令或脚本
环境说明
服务器重启或启动时执行命令或脚本
- 操作系统: CentOS Linux release 7.9.2009
- CPU架构: X86-64
方案
-
方案一:
使用/etc/rc.d/rc.local文件- 在该文件中添加要在服务器启动时执行的命令或脚本
![]()
- 确保rc.local文件具有可执行权限:
chmod +x /etc/rc.d/rc.local
- 在该文件中添加要在服务器启动时执行的命令或脚本
-
方案二:
使用crontab- 使用
crontab -e添加一条记录(服务器启动后延迟10秒执行指定脚本):@reboot sleep 10 && /root/reboot_crontab_test.sh(放在最前面,否则保存文件的时候会报错) - 保存文件
reboot系统即可
- 使用
-
方案三:
使用systemd服务(/etc/systemd/system)- 创建一个新的服务单元文件:
vi /etc/systemd/system/my-service.service,添加以下代码
- 创建一个新的服务单元文件:
[Unit]
Description=My Service
After=network.target
[Service]
ExecStart=/root/reboot_test_systemd.sh
[Install]
WantedBy=default.target
[Unit]:这个部分定义了服务单元的基本信息。
Description:描述了服务的名称或用途。
After:指定了服务应该在哪个目标(target)之后启动。在这个例子中,服务将在网络目标(network.target)之后启动。
[Service]:这个部分定义了服务的执行方式。
ExecStart:指定了要执行的命令或脚本的路径。在这个例子中,服务将执行/root/reboot_test_systemd.sh脚本。
[Install]:这个部分定义了服务的安装方式。
WantedBy:指定了服务应该被启用的目标。在这个例子中,服务将被启用为默认目标(default.target)的一部分。

- 编辑脚本(自定义脚本的开头加上脚本解释器
#!/bin/sh):/root/reboot_test_systemd.sh,代码如下
#!/bin/sh
echo "hello,i am systemd test" > reboot_systemd.txt
- 添加可执行权限:
chmod +x /etc/systemd/system/my-service.service - 启用服务:
systemctl enable my-service.service - 启动服务:
systemctl start my-service.service

浙公网安备 33010602011771号