背景
想在 飞牛(Feiniu)系统 启动过程中执行这个延迟 NFS 配置脚本。
虽然飞牛系统是阿里系的私有化 Linux 分发版(通常基于 CentOS 或类 RedHat 系列),我们可以用 Systemd 服务 的方式让它开机启动,并延迟执行。
使用 systemd 配置启动脚本
1. 保存你的脚本
先把你的优化版脚本保存到一个合理的位置,例如:
sudo nano /usr/local/bin/delay-nfs-setup.sh内容如下(不需要再加 sleep 了,我们用 systemd 的延迟机制控制时间):
#!/bin/bash
EXPORT_LINE="/vol2/1000/xk/MultiMedia 192.168.1.0/24(ro,async,no_subtree_check)"
EXPORTS_FILE="/etc/exports"
if grep -Fxq "$EXPORT_LINE" "$EXPORTS_FILE"; then
echo "✅ 配置已存在,无需修改。"
else
echo "⚙️ 配置不存在,正在添加..."
echo "$EXPORT_LINE" >> "$EXPORTS_FILE"
exportfs -ra
systemctl restart nfs-server
echo "✅ 操作完成,配置已添加。"
fi保存后加执行权限:
sudo chmod +x /usr/local/bin/delay-nfs-setup.sh2. 创建 systemd 服务
新建一个服务文件:
sudo nano /etc/systemd/system/delay-nfs-setup.service填入以下内容:
[Unit]
Description=Delayed NFS Export Setup
After=network-online.target nfs-server.service
Wants=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/delay-nfs-setup.sh
RemainAfterExit=true
# 延迟启动:等系统启动后再等 30 秒
ExecStartPre=/bin/sleep 30
[Install]
WantedBy=multi-user.target3. 启用服务
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable delay-nfs-setup.service你可以立即测试:
sudo systemctl start delay-nfs-setup.service或者重启验证效果:
sudo reboot