如何在首次启动时运行脚本?

如何在首次启动时运行脚本?

我只需要在我的 CentOS 机器首次启动时(安装操作系统后)运行一次 bash 脚本,该脚本应该运行网络服务启动(因为这个脚本会改变网络配置) 如何注册我的脚本在网络服务启动之前运行?

答案1

如果您查看 /etc/init.d/network 的“chkconfig”行,您会看到网络的启动优先级为“10”。

/etc/init.d/yourscript:
#!/bin/bash
#
# yourscript  short description
# 
# chkconfig: 2345 9 20
# description: long description

case "$1" in
  start)
    Do your thing !!!
    chkconfig yourscript off
  ;;
  stop|status|restart|reload|force-reload)
    # do nothing
  ;;
esac

然后运行chkconfig yourscript on以使其在启动时运行。chkconfig yourscript off脚本内部应禁止它在任何后续启动时运行。

CentOS/RHEL/Fedora 的某些版本有一个“firstboot”程序,您可以尝试使用,但这似乎很麻烦。

你确定不能在 kickstart 中的 %post 中运行网络重新配置脚本吗?我就是这么做的。

答案2

简单答案:将其粘贴/etc/init.d(符号链接到/etc/rc#.d)并且它所做的第一件事是检查文件是否存在:如果文件存在,则脚本已运行(因此退出)。如果不存在,则运行脚本并触摸文件。

这也允许您删除该文件以强制脚本稍后再次运行。

相关内容