我需要在CentOS机器首次启动时(安装操作系统后)只运行一次bash脚本这个脚本应该在networking服务启动之前运行(因为这个脚本会改变networkingconfiguration)如何注册我的脚本以在networking服务启动之前运行?
如果您查看/etc/init.d/network的“chkconfig”行,您会看到networking的启动优先级为“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中运行networking重新configuration脚本? 我就是做这个的。
简单的答案:坚持它在/etc/init.d ( /etc/rc#.d链接到/etc/rc#.d )第一件事是检查文件的存在:如果文件存在脚本已经运行(所以退出)。 如果没有,运行脚本并触摸文件。
这也可以让你删除文件来强制脚本稍后再运行。